设为首页 加入收藏

TOP

Android实现DES和3DES算法(二)
2017-01-20 08:15:17 】 浏览:3661
Tags:Android 实现 DES 3DES 算法
Utils.deCode(hexStringToBytes("B1C3D2A87DBDB68FA73FBBBCD6F083AC"), "A1A2A3A4A5A6A7A8");
? ?
?} catch (Exception e) {
? e.printStackTrace();
?}
?
//3DES
?//3DES加密
?String key = ?"A1A2A3A4A5A6A7A8"?//K1密钥
? ?+"B1B2B3B4B5B6B7B8"?//K2密钥
? ?+"A1A2A3A4A5A6A7A8";?//K3密钥
?byte[] result = DES3Utils.encryptMode(hexStringToBytes(key), hexStringToBytes("3132333435363738"));


?//3DES解密
?byte[] dnresult = DES3Utils.decryptMode(hexStringToBytes(key), hexStringToBytes("B0920ED6520EAF752E22A1F49B243353"));


//***************************************************************************************
?//实现String到byte的转换
?public static byte[] hexStringToBytes(String string) {
? ? ? ? String hexString = string.replaceAll(" ", "").toUpperCase();



? ? ? ? if (hexString.length() <= 0)
? ? ? ? ? ? return null;



? ? ? ? int length = hexString.length() / 2;
? ? ? ? char[] hexChars = hexString.toCharArray();
? ? ? ? byte[] d = new byte[length];
? ? ? ? for (int i = 0; i < length; i++) {
? ? ? ? ? ? int pos = i * 2;
? ? ? ? ? ? d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));
? ? ? ? }
? ? ? ? return d;
? ? }?


DES的明文是3132333435363738,密钥是A1A2A3A4A5A6A7A8,加密后得到B1C3D2A87DBDB68FA73FBBBCD6F083AC,这里面前面16位是明文加密而来的,后面的A73FBBBCD6F083AC是由0808080808080808加密而来的。这8个08是算法自动填充上去的。3DES同样会填充8个08上去再加密。B0920ED6520EAF752E22A1F49B243353后面的2E22A1F49B243353是由填充的0808080808080808加密而来。


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Android 6.0动态权限申请 下一篇SpringMVC项目中使用Google Kaptc..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目