当前位置:首页 » 密码管理 » 密码加密代码

密码加密代码

发布时间: 2023-07-31 07:30:42

㈠ HTML5三种对密码加密的方法

1、base64加密:在页面中引入base64.js文件,调用方法为:

2、md5加密:在页面中引用md5.js文件,调用方法为

3、sha1加密,据说这是最安全的加密:页面中引入sha1.js,调用方法为

base64.js: http://files.cnblogs.com/mofish/base64.js
md5.js: http://files.cnblogs.com/mofish/md5.js
sha1.js: http://files.cnblogs.com/mofish/sha1.js

我们可以知道:escape()除了 ASCII 字母、数字和特定的符号外,对传进来的字符串全部进行转义编码,因此如果想对URL编码,最好不要使用此方法。而encodeURI() 用于编码整个URI,因为URI中的合法字符都不会被编码转换。encodeURIComponent方法在编码单个URIComponent(指请求参数)应当是最常用的,它可以讲参数中的中文、特殊字符进行转义,而不会影响整个URL。

请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。

一、encodeURI()//转义一个URI中的字符

语法:encodeURI(uri)//这个在编码不同的AJAX请求时,解决中文乱码问题经常用到。

二、decodeURI()//解码一个URI中的字符

语法:decodeURI(uri)

三、encodeURIComponent()//转义URI组件中的字符

四、decodeURIComponent()//解码一个URI组件中的字符

五、escape()//编码一个字符串

语法:escape(value);

六、unecape()//解码一个由escape()函数编码的字符串

㈡ 画图说明序列密码的主要加密方式

一、序列密码概述

序列密码也称为流密码(Stream Cipher),它是对称密码算法的一种。序列密码具有实现简单、便于硬件实明族施、加解密处理速度快、没有或只有有限的错误传播等特点,因此在实际应用中,特别是专用或机密机构中保持着优势,典型的应用领域包括无线通信、外交通信。

它的加密方式是将明文和密钥进行异或运算,如:明文a,ASCLL码为97,二进制嘛为0110 0001;密钥为B,ASCLL码为66,二进制码为0100 0010,然后再按位异或:

明文 0 1 1 0 0 0 0 1
密钥 0 1 0 0 0 0 1 0
密文 0 0 1 0 0 0 1 1
 

这样得到的密文为0010 0011,对应的ascll为35,即“#”。

当我们拿到密文“#”以及密钥“B”以后,我们同样按照转换为ASCLL码,按位异或的方式,获得明文:

密文 0 0 1 0 0 0 1 1
密钥 0 1 0 0 0 0 1 0
明文 0 1 1 0 0 0 0 1
 

这样,我们获得了“0110 0001”,转换为十进制为97,对应ASCLL表,得到了字符“a”。

二、序列密码的定义

这里我们对序列密码的加密与解密有以下定义:

明文、密文和密钥序列都是由单独的位组成,即:Xi,Yi,Si ∈{0,1}

加密:Yi = (Xi + Si) mod 2

解密:Xi = (Yi + Si) mod 2

三、序列密码的特点

序列密码如果使用统一密钥多次拦截后,可以从其中的规律中推导出密钥。1941-1946年间,苏联多次使用同一密码本以便节约成本,最后被美国破译,在美国称为Venona计划。为了让序列秘密更加安全,于是产生了一次性密钥,但是序列密码最大的问题有两点:

1.密钥长度与明文长度一致,如果需要加密20M的明文,那么就需要20M的密文

2.序列密码容易被篡改。

四、简单的序列密码解密

知道了序列密码的原理,解密过程就简单了,只需要将密文与密钥按字符依次取出,转换为ascll码,按位异或判州,再将其组合为字符串即可获得明文。

这里,因为存在特殊符号,我们就先去askll码表中,查到了每个符号对应的askll码,如下:

"11","9","43","43","44","6","49","41","21","2","56","39","1","47","20"

这样,我们就可以通过powershell,将密文进行解密了,代码如下:

[string[]]$a_arr ="11","9","43","43","44","6","49","41","21","2","56","39","1","47","20"
[string]$miyue="EfcDAcFFgilHeNm"
[int]$cd = $miyue.Length
[char[]]$b_arr = $miyue.ToCharArray()
[string]$e_arr =""
for($i=1;$i -le $cd; $i++ )
{
[int]$c = $b_arr[$i-1]
[int]$d = $c -bxor $a_arr[$i-1]
[char]$e = $d
[string]$e_arr =$e_arr + $e

}

echo $e_arr
登录后复制

输出的结果为:

这就完成了对序列密掘槐蔽码的解密。

c语言密码加密,求解释

很高兴能为你解答!这是一个很普通的程序。
char a[5];这串代码的意思是(定义一个字符数组元素为5个)。

for(i=0;i<5;i++)
{
scanf("%c",&a[i]);
}这串代码的意思是(用了一个for循环条件为5次,每次要求用户输入一个字符,共输入五次)。
for(m=0;m<5;m++)
{
a[m]=a[m]+4;
}这串代码也是一个循环体,循环五次,每次都会进行运算表达式,a[m]=a[m]+4;这里的是每次将a[m]+4在赋给a[m]。如果还有什么不明白可以追问。

㈣ 十大常见密码加密方式

一、密钥散列

采用MD5或者SHA1等散列算法,对明文进行加密。严格来说,MD5不算一种加密算法,而是一种摘要算法。无论多长的输入,MD5都会输出一个128位(16字节)的散列值。而SHA1也是流行的消息摘要算法,它可以生成一个被称为消息摘要的160位(20字节)散列值。MD5相对SHA1来说,安全性较低,但是速度快;SHA1和MD5相比安全性高,但是速度慢。

二、对称加密

采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密。对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。

三、非对称加密

非对称加密算法是一种密钥的保密方法,它需要两个密钥来进行加密和解密,这两个密钥是公开密钥和私有密钥。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。非对称加密算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)。

四、数字签名

数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是在使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。

五、直接明文保存

早期很多这样的做法,比如用户设置的密码是“123”,直接就将“123”保存到数据库中,这种是最简单的保存方式,也是最不安全的方式。但实际上不少互联网公司,都可能采取的是这种方式。

六、使用MD5、SHA1等单向HASH算法保护密码

使用这些算法后,无法通过计算还原出原始密码,而且实现比较简单,因此很多互联网公司都采用这种方式保存用户密码,曾经这种方式也是比较安全的方式,但随着彩虹表技术的兴起,可以建立彩虹表进行查表破解,目前这种方式已经很不安全了。

七、特殊的单向HASH算法

由于单向HASH算法在保护密码方面不再安全,于是有些公司在单向HASH算法基础上进行了加盐、多次HASH等扩展,这些方式可以在一定程度上增加破解难度,对于加了“固定盐”的HASH算法,需要保护“盐”不能泄露,这就会遇到“保护对称密钥”一样的问题,一旦“盐”泄露,根据“盐”重新建立彩虹表可以进行破解,对于多次HASH,也只是增加了破解的时间,并没有本质上的提升。

八、PBKDF2

该算法原理大致相当于在HASH算法基础上增加随机盐,并进行多次HASH运算,随机盐使得彩虹表的建表难度大幅增加,而多次HASH也使得建表和破解的难度都大幅增加。

九、BCrypt

BCrypt 在1999年就产生了,并且在对抗 GPU/ASIC 方面要优于 PBKDF2,但是我还是不建议你在新系统中使用它,因为它在离线破解的威胁模型分析中表现并不突出。

十、SCrypt

SCrypt 在如今是一个更好的选择:比 BCrypt设计得更好(尤其是关于内存方面)并且已经在该领域工作了 10 年。另一方面,它也被用于许多加密货币,并且我们有一些硬件(包括 FPGA 和 ASIC)能实现它。 尽管它们专门用于采矿,也可以将其重新用于破解。

㈤ c语言实现密码加密

unsignedchar*encrypt(unsignedchar*psw,intenc){
intsum=0,i;
if(enc){
for(i=0;i<6;i++){
psw[i]-=15;
sum+=psw[i];
}
psw[6]=(unsignedchar)sum;
psw[7]=0;
}
else{
for(i=0;i<6;i++){
sum+=psw[i];
psw[i]+=15;
}
if((unsignedchar)sum!=psw[6]){
printf("Badpassword ");
psw[0]=0;
returnpsw;
}
else{
psw[6]=0;
}
}
for(i=0;i<3;i++){
unsignedchart=psw[i];
psw[i]=psw[5-i];
psw[5-i]=t;
}
returnpsw;
}

intmain()
{
unsignedcharpsw[128];
scanf("%s",psw);
printf("encodeto:%s ",encrypt(psw,1));
printf("decodeto:%s ",encrypt(psw,0));
return0;
}

㈥ C语言实现密码表加密

#include<stdio.h>
#include<stdlib.h>

#define N 1024
int find(char *pt,char c)
{
int i,r=-1;

for(i=0;'\0'!=pt[i];i++)
{
if(c==pt[i])
{
r=i;
break;
}
}
return r;
}
int main()
{
char mingwen[]="";
char miwen[]="";
char buf1[N],buf2[N];
int i,n;

scanf("%s",buf1);
for(i=0;'\0'!=buf1[i];i++)
{
if(-1!=(n=find(mingwen,buf1[i])))
{
buf2[i]=miwen[n];
}
else
{
buf2[i]=buf1[i];
}
}
buf2[i]='\0';
printf("%s\n",buf2);
system("PAUSE");
return EXIT_SUCCESS;
}

热点内容
项目编译啥意思 发布:2025-02-02 00:25:13 浏览:222
逐鹿中原怎样做挂机脚本 发布:2025-02-02 00:23:39 浏览:26
安卓系统跟踪在哪里 发布:2025-02-02 00:23:38 浏览:898
安卓uc浏览器怎么安装油猴 发布:2025-02-02 00:23:38 浏览:298
中商情报网数据库 发布:2025-02-02 00:09:26 浏览:532
python获取目录下所有文件名 发布:2025-02-01 23:47:54 浏览:896
生物安全柜配置哪些药品 发布:2025-02-01 23:37:19 浏览:424
光遇安卓画质为什么没有ios好 发布:2025-02-01 23:33:33 浏览:845
免费网店系统源码 发布:2025-02-01 23:24:05 浏览:311
压缩不原图 发布:2025-02-01 23:23:30 浏览:926