java des3 des3 rc4加密后字符串会增大多少

君,已阅读到文档的结尾了呢~~
 java常用加密方式 内容详尽,但请以实际操作为准,欢迎下载使用
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
 java常用加密方式
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口开发者工具
加密前字符串
HmacSHA224
HmacSHA256
HmacSHA384
HmacSHA512
UrlDecode&&
Rabbit加密
Rabbit解密&&
TripleDES加密
TripleDES解密&&
base64加密
base64解密posts - 300,&
comments - 1617,&
trackbacks - 0
常用加密算法的Java实现总结(二)
——对称加密算法DES、3DES和AES
文:阿蜜果
1、对称加密算法
对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文()和加密(mi yue)一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。
1.2 优缺点
&&&&&&&& 优点:算法公开、计算量小、加密速度快、加密效率高。
&&&&&&&& 缺点:
(1)交易双方都使用同样钥匙,安全性得不到保证。
(2)每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量呈几何级数增长,成为用户的负担。对称加密算法在分布式网络系统上使用较为困难,主要是因为困难,使用成本较高。
1.3 常用对称加密算法
基于“”的加密算法主要有DES、3DES(TripleDES)、AES、RC2、RC4、RC5和Blowfish等。本文只介绍最常用的对称加密算法DES、3DES(TripleDES)和AES。
DES算法全称为Data Encryption Standard,即数据加密算法,它是IBM公司于1975年研究成功并公开发表的。DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。
2.2 算法原理
DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位,其算法主要分为两步:
(1)初始置换
其功能是把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,其置换规则为将输入的第58位换到第一位,第50位换到第2位……依此类推,最后一位是原来的第7位。L0、R0则是换位输出后的两部分,L0是输出的左32位,R0是右32位,例:设置换前的输入值为D1D2D3……D64,则经过初始置换后的结果为:L0=D58D50……D8;R0=D57D49……D7。
(2)逆置换
经过16次迭代运算后,得到L16、R16,将此作为输入,进行逆置换,逆置换正好是初始置换的逆运算,由此即得到密文输出。
2.3 五种分组模式2.3.1 EBC模式
2.有利于并行计算;
3.误差不会被传送;
1.不能隐藏明文的模式;
2.可能对明文进行主动攻击。
2.3.2 CBC模式
&&&&&&&& CBC模式又称为密码分组链接模式,示意图如下:
1.不容易主动攻击,安全性好于ECB,适合传输长度长的报文,是SSL、IPSec的标准。
1、不利于并行计算;
2、误差传递;
3、需要初始化向量IV。
2.3.3 CFB模式
&&&&&&&& CFB模式又称为密码发反馈模式,示意图如下图所示:
1、隐藏了明文模式;
2、分组密码转化为流模式;
3、可以及时加密传送小于分组的数据。
1、不利于并行计算;
2、误差传送:一个明文单元损坏影响多个单元;
3、唯一的IV。
2.3.4 OFB模式
&&&&&&&& OFB模式又称输出反馈模式,示意图所下图所示:
1、隐藏了明文模式;
2、分组密码转化为流模式;
3、可以及时加密传送小于分组的数据。
1、不利于并行计算;
2、对明文的主动攻击是可能的;
3、误差传送:一个明文单元损坏影响多个单元。
2.3.5 CTR模式
计数模式(CTR模式)加密是对一系列输入数据块(称为计数)进行加密,产生一系列的输出块,输出块与明文异或得到密文。对于最后的数据块,可能是长u位的局部数据块,这u位就将用于异或操作,而剩下的b-u位将被丢弃(b表示块的长度)。CTR解密类似。这一系列的计数必须互不相同的。假定计数表示为T1, T2, …, Tn。CTR模式可定义如下:
CTR加密公式如下:
Cj = Pj XOR Ek(Tj)
C*n = P*n XOR MSBu(Ek(Tn)) j = 1,2… n-1;
CTR解密公式如下:
Pj = Cj XOR Ek(Tj)
P*n = C*n XOR MSBu(Ek(Tn)) j = 1,2 … n-1;
AES CTR模式的结构如图5所示。&
图5 AES CTR的模式结构
Fig 5 Structure of AES CTR Mode
加密方式:密码算法产生一个16 字节的伪随机码块流,伪随机码块与输入的明文进行异或运算后产生密文输出。密文与同样的伪随机码进行异或运算后可以重产生明文。
CTR&模式被广泛用于&ATM&网络安全和&IPSec应用中,相对于其它模式而言,CRT模式具有如下特点:
■硬件效率:允许同时处理多块明文&/&密文。
■&软件效率:允许并行计算,可以很好地利用&CPU&流水等并行技术。
■&预处理:算法和加密盒的输出不依靠明文和密文的输入,因此如果有足够的保证安全的存储器,加密算法将仅仅是一系列异或运算,这将极大地提高吞吐量。
■&随机访问:第&i&块密文的解密不依赖于第&i-1&块密文,提供很高的随机访问能力
■&可证明的安全性:能够证明&CTR&至少和其他模式一样安全(CBC,&CFB,&OFB,&...)
■&简单性:与其它模式不同,CTR模式仅要求实现加密算法,但不要求实现解密算法。对于&AES&等加/解密本质上不同的算法来说,这种简化是巨大的。
■&无填充,可以高效地作为流式加密使用。
2.4 常用的填充方式
&&&&&&&& 在Java进行DES、3DES和AES三种对称加密算法时,常采用的是NoPadding(不填充)、Zeros填充(0填充)、PKCS5Padding填充。
2.4.1 ZerosPadding
全部填充为0的字节,结果如下:
&&&&&& F1 F2 F3 F4 F5 F6 F7 F8&& //第一块
&&&&& F9 00 00 00 00 00 00 00&//第二块
2.4.2 PKCS5Padding
每个填充的字节都记录了填充的总字节数,结果如下:
&F1 F2 F3 F4 F5 F6 F7 F8&& //第一块
&F9 07 07 07 07 07 07 07&//第二块
2.5 Java中的DES实现
&&&&&&&& DES加密算法(ECB、无填充)的Java实现如下所示:
package&amigo.import&java.security.InvalidKeyEimport&java.security.Kimport&java.security.NoSuchAlgorithmEimport&java.security.SecureRimport&java.security.spec.InvalidKeySpecEimport&javax.crypto.Cimport&javax.crypto.SecretKimport&javax.crypto.SecretKeyFimport&javax.crypto.spec.DESKeySimport&mons.codec.binary.Base64;public&class&DESUtil&{&&&&//算法名称&&&&&public&static&final&String&KEY_ALGORITHM&=&"DES";&&&&//算法名称/加密模式/填充方式&&&&&//DES共有四种工作模式--&&ECB:电子密码本模式、CBC:加密分组链接模式、CFB:加密反馈模式、OFB:输出反馈模式&&&&public&static&final&String&CIPHER_ALGORITHM&=&"DES/ECB/NoPadding";&&&&/**&*//**&&&&&*&&&&&&&&*&生成密钥key对象&&&&&*&&#64;param&KeyStr&密钥字符串&&&&&&*&&#64;return&密钥对象&&&&&&*&&#64;throws&InvalidKeyException&&&&&&&&*&&#64;throws&NoSuchAlgorithmException&&&&&&&&*&&#64;throws&InvalidKeySpecException&&&&&&&&*&&#64;throws&Exception&&&&&&*/&&&&private&static&SecretKey&keyGenerator(String&keyStr)&throws&Exception&{&&&&&&&&byte&input[]&=&HexString2Bytes(keyStr);&&&&&&&&DESKeySpec&desKey&=&new&DESKeySpec(input);&&&&&&&&//创建一个密匙工厂,然后用它把DESKeySpec转换成&&&&&&&&SecretKeyFactory&keyFactory&=&SecretKeyFactory.getInstance("DES");&&&&&&&&SecretKey&securekey&=&keyFactory.generateSecret(desKey);&&&&&&&&return&&&&&}&&&&private&static&int&parse(char&c)&{&&&&&&&&if&(c&&=&'a')&return&(c&-&'a'&+&<span style="color: #)&&&<span style="color: #x0f;&&&&&&&&if&(c&&=&'A')&return&(c&-&'A'&+&<span style="color: #)&&&<span style="color: #x0f;&&&&&&&&return&(c&-&'<span style="color: #')&&&<span style="color: #x0f;&&&&}&&&&//&从十六进制字符串到字节数组转换&&&&&public&static&byte[]&HexString2Bytes(String&hexstr)&{&&&&&&&&byte[]&b&=&new&byte[hexstr.length()&/&<span style="color: #];&&&&&&&&int&j&=&<span style="color: #;&&&&&&&&for&(int&i&=&<span style="color: #;&i&&&b.&i++)&{&&&&&&&&&&&&char&c0&=&hexstr.charAt(j++);&&&&&&&&&&&&char&c1&=&hexstr.charAt(j++);&&&&&&&&&&&&b[i]&=&(byte)&((parse(c0)&&&&<span style="color: #)&|&parse(c1));&&&&&&&&}&&&&&&&&return&b;&&&&}&&&&/**&*//**&&&&&&*&加密数据&&&&&*&&#64;param&data&待加密数据&&&&&*&&#64;param&key&密钥&&&&&*&&#64;return&加密后的数据&&&&&&*/&&&&public&static&String&encrypt(String&data,&String&key)&throws&Exception&{&&&&&&&&Key&deskey&=&keyGenerator(key);&&&&&&&&//&实例化Cipher对象,它用于完成实际的加密操作&&&&&&&&Cipher&cipher&=&Cipher.getInstance(CIPHER_ALGORITHM);&&&&&&&&SecureRandom&random&=&new&SecureRandom();&&&&&&&&//&初始化Cipher对象,设置为加密模式&&&&&&&&cipher.init(Cipher.ENCRYPT_MODE,&deskey,&random);&&&&&&&&byte[]&results&=&cipher.doFinal(data.getBytes());&&&&&&&&//&该部分是为了与加解密在线测试网站(http://tripledes.online-/)的十六进制结果进行核对&&&&&&&&for&(int&i&=&<span style="color: #;&i&&&results.&i++)&{&&&&&&&&&&&&System.out.print(results[i]&+&"&");&&&&&&&&}&&&&&&&&System.out.println();&&&&&&&&//&执行加密操作。加密后的结果通常都会用Base64编码进行传输&&&&&&&&&return&Base64.encodeBase64String(results);&&&&}&&&&/**&*//**&&&&&&*&解密数据&&&&&&*&&#64;param&data&待解密数据&&&&&&*&&#64;param&key&密钥&&&&&&*&&#64;return&解密后的数据&&&&&&*/&&&&public&static&String&decrypt(String&data,&String&key)&throws&Exception&{&&&&&&&&Key&deskey&=&keyGenerator(key);&&&&&&&&Cipher&cipher&=&Cipher.getInstance(CIPHER_ALGORITHM);&&&&&&&&//初始化Cipher对象,设置为解密模式&&&&&&&&cipher.init(Cipher.DECRYPT_MODE,&deskey);&&&&&&&&//&执行解密操作&&&&&&&&return&new&String(cipher.doFinal(Base64.decodeBase64(data)));&&&&}&&&&public&static&void&main(String[]&args)&throws&Exception&{&&&&&&&&String&source&=&"amigoxie";&&&&&&&&System.out.println("原文:&"&+&source);&&&&&&&&String&key&=&"A1B2C3D4E5F60708";&&&&&&&&String&encryptData&=&encrypt(source,&key);&&&&&&&&System.out.println("加密后:&"&+&encryptData);&&&&&&&&String&decryptData&=&decrypt(encryptData,&key);&&&&&&&&System.out.println("解密后:&"&+&decryptData);&&&&}}
&&& 测试结果:
原文:&amigoxie<span style="color: #&-<span style="color: #&<span style="color: #&-<span style="color: #7&-<span style="color: #&-<span style="color: #&-<span style="color: #&<span style="color: #&加密后:&YfEgi8fWpks=解密后:&amigoxie
&&& 为了核对测试结果是否正确,需要将结果与 &#8220;加密解密在线测试网站&#8221;()进行核对,在该网站的测试结果如下:
&&&&&&&& 左侧下方显示的加密结果&#8220;61 f1 20 8b c7 d6 a6 4b&#8221;是返回的16进制结果。与我们打印出的十进制&#8220;97 -15 32 -117 -57 -42 -90 75&#8221;是相对应的。
需要注意的是这个网站采用的填充方式是NoPadding,如果我们程序中采用PKCS5Padding或PKCS7Padding填充方式,这些填充方式在不足位时会进行填充,所以会跟我们在该测试网站看到的后面部分不一致。
另外Java的byte的范围是-128-127,而不是0~255,因此超过十六进制7f(对应127)的数在Java中会转换为负数。
【说明】DESUtil类中引入的org.bouncycastle.jce.provider.BouncyCastleProvider类在commons-codec-1.6.jar包中。
3DES(或称为Triple DES)是三重(TDEA,Triple Data Encryption Algorithm)块密码的通称。它相当于是对每个应用三次DES。由于计算机运算能力的增强,原版DES密码的长度变得容易被暴力破解;3DES即是设计用来提供一种相对简单的方法,即通过增加DES的密钥长度来避免类似的攻击,而不是设计一种全新的块。
3.2 算法原理
使用3条56位的对 数据进行三次加密。3DES(即Triple DES)是DES向AES过渡的(1999年,NIST将3-DES指定为过渡的加密标准)。
其具体实现如下:设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的,P代表明文,C代表密文,这样:
3DES加密过程为:C=Ek3(Dk2(Ek1(P)))
3DES解密过程为:P=Dk1(EK2(Dk3(C)))
3.3 Java中的3DES实现
&&&&&&&& 3DES的在Java的实现与DES类似,如下代码为3DES加密算法、CBC模式、NoPadding填充方式的加密解密结果,参考代码如下所示:
package&amigo.import&java.security.InvalidKeyEimport&java.security.Kimport&java.security.NoSuchAlgorithmEimport&java.security.Simport&java.security.spec.InvalidKeySpecEimport&javax.crypto.Cimport&javax.crypto.SecretKeyFimport&javax.crypto.spec.DESedeKeySimport&javax.crypto.spec.IvParameterSimport&org.bouncycastle.jce.provider.BouncyCastlePpublic&class&ThreeDESUtil&{&&&&//&算法名称&&&&&public&static&final&String&KEY_ALGORITHM&=&"desede";&&&&//&算法名称/加密模式/填充方式&&&&&public&static&final&String&CIPHER_ALGORITHM&=&"desede/CBC/NoPadding";&&&&/**&*//**&&&&&&*&CBC加密&&&&&&*&&#64;param&key&密钥&&&&&&*&&#64;param&keyiv&IV&&&&&&*&&#64;param&data&明文&&&&&&*&&#64;return&Base64编码的密文&&&&&&*&&#64;throws&Exception&&&&&&*/&&&&public&static&byte[]&des3EncodeCBC(byte[]&key,&byte[]&keyiv,&byte[]&data)&throws&Exception&{&&&&&&&&Security.addProvider(new&BouncyCastleProvider());&&&&&&&&&Key&deskey&=&keyGenerator(new&String(key));&&&&&&&&Cipher&cipher&=&Cipher.getInstance(CIPHER_ALGORITHM);&&&&&&&&IvParameterSpec&ips&=&new&IvParameterSpec(keyiv);&&&&&&&&cipher.init(Cipher.ENCRYPT_MODE,&deskey,&ips);&&&&&&&&byte[]&bOut&=&cipher.doFinal(data);&&&&&&&&for&(int&k&=&<span style="color: #;&k&&&bOut.&k++)&{&&&&&&&&&&&&System.out.print(bOut[k]&+&"&");&&&&&&&&}&&&&&&&&System.out.println("");&&&&&&&&return&bO&&&&}&&&&/**&*//**&&&&&&*&&&&&&&&*&生成密钥key对象&&&&&&*&&#64;param&KeyStr&密钥字符串&&&&&&*&&#64;return&密钥对象&&&&&&*&&#64;throws&InvalidKeyException&&&&&&&&*&&#64;throws&NoSuchAlgorithmException&&&&&&&&*&&#64;throws&InvalidKeySpecException&&&&&&&&*&&#64;throws&Exception&&&&&&*/&&&&private&static&Key&keyGenerator(String&keyStr)&throws&Exception&{&&&&&&&&byte&input[]&=&HexString2Bytes(keyStr);&&&&&&&&DESedeKeySpec&KeySpec&=&new&DESedeKeySpec(input);&&&&&&&&SecretKeyFactory&KeyFactory&=&SecretKeyFactory.getInstance(KEY_ALGORITHM);&&&&&&&&return&((Key)&(KeyFactory.generateSecret(((java.security.spec.KeySpec)&(KeySpec)))));&&&&}&&&&private&static&int&parse(char&c)&{&&&&&&&&if&(c&&=&'a')&return&(c&-&'a'&+&<span style="color: #)&&&<span style="color: #x0f;&&&&&&&&if&(c&&=&'A')&return&(c&-&'A'&+&<span style="color: #)&&&<span style="color: #x0f;&&&&&&&&return&(c&-&'<span style="color: #')&&&<span style="color: #x0f;&&&&}&&&&&//&从十六进制字符串到字节数组转换&&&&&public&static&byte[]&HexString2Bytes(String&hexstr)&{&&&&&&&&byte[]&b&=&new&byte[hexstr.length()&/&<span style="color: #];&&&&&&&&int&j&=&<span style="color: #;&&&&&&&&for&(int&i&=&<span style="color: #;&i&&&b.&i++)&{&&&&&&&&&&&&char&c0&=&hexstr.charAt(j++);&&&&&&&&&&&&char&c1&=&hexstr.charAt(j++);&&&&&&&&&&&&b[i]&=&(byte)&((parse(c0)&&&&<span style="color: #)&|&parse(c1));&&&&&&&&}&&&&&&&&return&b;&&&&}&&&&/**&*//**&&&&&&*&CBC解密&&&&&&*&&#64;param&key&密钥&&&&&&*&&#64;param&keyiv&IV&&&&&&*&&#64;param&data&Base64编码的密文&&&&&&*&&#64;return&明文&&&&&&*&&#64;throws&Exception&&&&&&*/&&&&public&static&byte[]&des3DecodeCBC(byte[]&key,&byte[]&keyiv,&byte[]&data)&throws&Exception&{&&&&&&&&Key&deskey&=&keyGenerator(new&String(key));&&&&&&&&Cipher&cipher&=&Cipher.getInstance(CIPHER_ALGORITHM);&&&&&&&&IvParameterSpec&ips&=&new&IvParameterSpec(keyiv);&&&&&&&&cipher.init(Cipher.DECRYPT_MODE,&deskey,&ips);&&&&&&&&byte[]&bOut&=&cipher.doFinal(data);&&&&&&&&return&bO&&&&}&&&&public&static&void&main(String[]&args)&throws&Exception&{&&&&&&&&byte[]&key&=&"<span style="color: #C4E60EFF838C0F7".getBytes();&&&&&&&&byte[]&keyiv&=&{&<span style="color: #,&<span style="color: #,&<span style="color: #,&<span style="color: #,&<span style="color: #,&<span style="color: #,&<span style="color: #,&<span style="color: #&};&&&&&&&&byte[]&data&=&"amigoxie".getBytes("UTF-8");&&&&&&&&System.out.println("data.length="&+&data.length);&&&&&&&&System.out.println("CBC加密解密");&&&&&&&&byte[]&str5&=&des3EncodeCBC(key,&keyiv,&data);&&&&&&&&System.out.println(new&sun.misc.BASE64Encoder().encode(str5));&&&&&&&&byte[]&str6&=&des3DecodeCBC(key,&keyiv,&str5);&&&&&&&&System.out.println(new&String(str6,&"UTF-8"));&&&&}}
&&&& 测试结果如下所示:
data.length=<span style="color: #CBC加密解密-<span style="color: #&<span style="color: #&<span style="color: #8&<span style="color: #&<span style="color: #&-<span style="color: #2&-<span style="color: #&-<span style="color: #&4AZsKhiQvt4=amigoxie
&&&& 加密解密在线测试网站的3DES可选择CBC模式,无填充方式选项,采用NoPadding填充方式,加密结果如下所示:
&&&&&&&ThreeDESUtil的测试代码中打印出的加密后的byte数组为:&#8220;-32 6 108 42 24 -112 -66 -34&#8221;,正是在线测试网站返回的十六进制&#8220;e0 &&06&6c&2a&18&90&be&de&#8221;在Java中的十进制表示(Java中byte范围为:-128~127,所以超过127的数会被转换成负数)。
【说明】ThreeDESUtil类中引入的org.bouncycastle.jce.provider.BouncyCastleProvider类在bcprov-jdk16-1.46.jar包中。
4、AES加密
&&&&&&&& 待写。
5、参考文档
&&&&&&&& 《对称加密算法_百度百科》:
&&&&&&&& 《DES_百度百科》:
《加密解密在线测试网站》:
《/CTR》:
《密码学 数据块填充模式》:
《3DES_百度百科》:
阅读(126258)
&re: 常用加密算法的Java实现总结(二)——对称加密算法DES、3DES和AES
期待博主更新&&&&&&
&re: 常用加密算法的Java实现总结(二)——对称加密算法DES、3DES和AES
学习了.&&&&&&
&re: 常用加密算法的Java实现总结(二)——对称加密算法DES、3DES和AES
受益匪浅&&&&&&
&re: 常用加密算法的Java实现总结(二)——对称加密算法DES、3DES和AES
就我这样的非专业人士看起来复杂难懂啊&&&&&&
&re: 常用加密算法的Java实现总结(二)——对称加密算法DES、3DES和AES
这个该怎么弄上链接呢?&&&&&&
&re: 常用加密算法的Java实现总结(二)——对称加密算法DES、3DES和AES
java aes ios aesyou mei you?&&&&&&
&re: 常用加密算法的Java实现总结(二)——对称加密算法DES、3DES和AES
好极了&&&&&&
&re: 常用加密算法的Java实现总结(二)——对称加密算法DES、3DES和AES
学习一下&&&&&&
&re: 常用加密算法的Java实现总结(二)——对称加密算法DES、3DES和AES
对于我来说还是太深奥&&&&&&
&re: 常用加密算法的Java实现总结(二)——对称加密算法DES、3DES和AES
伟大的职位,感谢分享&&&&&&
&re: 常用加密算法的Java实现总结(二)——对称加密算法DES、3DES和AES
慕名学习&&&&&&
&re: 常用加密算法的Java实现总结(二)——对称加密算法DES、3DES和AES
知道最浅显的,这个还在学习了!&&&&&&
&re: 常用加密算法的Java实现总结(二)——对称加密算法DES、3DES和AES
好帖子。我需要它。感謝信息&&&&&&
&re: 常用加密算法的Java实现总结(二)——对称加密算法DES、3DES和AES
正在学习加密算法中,帮助很大&&&&&&
&re: 常用加密算法的Java实现总结(二)——对称加密算法DES、3DES和AES
你写的真的很不错。博客是完全塞满了独特而良好的信息。良好的继续下去。&&&&&&
&re: 常用加密算法的Java实现总结(二)——对称加密算法DES、3DES和AES
import mons.codec.binary.Base64;这句有问题该怎么解决呢
?我是菜鸟&&&&&&
&re: 常用加密算法的Java实现总结(二)——对称加密算法DES、3DES和AES
不一定非得用这个 随便找个转base64的方法就行&#64;chant&&&&&&
&re: 常用加密算法的Java实现总结(二)——对称加密算法DES、3DES和AES
不错!&&&&&&
&re: 常用加密算法的Java实现总结(二)——对称加密算法DES、3DES和AES
&#64;11java8里面新增的类&&&&&&
&re: 常用加密算法的Java实现总结(二)——对称加密算法DES、3DES和AES
security 里面有一个加盐的加密类Md5PasswordEncoder&&&&&&
29301234578910111213141516171819202122232425262728293031123456789
&&&&&&生活将我们磨圆,是为了让我们滚得更远&#8212;&#8212;&#8220;圆&#8221;来如此。&&&&& 我的作品:& & &&& (2015年12月出版)& & &&& & & & (2015年7月出版)& & &&&&&&&& &(2010年5月出版)&&&&&
留言簿(252)
积分与排名
阅读排行榜
评论排行榜Access俱乐部
?&&&&?&&&&?&&&&?&&&&
您的位置:  > >
【access源码】加密模块VBA版本源码(MD5、SHA1、DES3)
来源:&&点击数:8061&&评论数:8 &|&&|&
时 间: 00:00:00
作 者:&&&ID:10768&&城市:上海
摘 要:加密模块VBA版本源码(MD5、SHA1、DES3)
本来还有一个RC4加密的,不过经过严格测试,发现很多特殊字符等都不能正确加解密,就不传上来了。
      
&&&&【&&】&&&&【&&】&&&&【&&】&&&&【&&】&&&&【&&】&&&&【&&】
Access网店
价格:¥400 元
价格:¥50 元
价格:¥100 元
(09-30 17:25)
(09-30 16:11)
(09-30 15:27)
(09-30 13:22)
(09-30 11:12)
(09-30 10:50)
(09-30 10:37)
(09-30 08:55)
(09-29 20:24)
(09-29 17:23)
Access软件网 版权所有 CopyRight
提供支持 本站特聘法律顾问: 李慧 律师}

我要回帖

更多关于 python des加密字符串 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信