1、Des加密js+java结果一致精讲Des加密(js+java结果一致)正文:1.des资源文件下载(des.js+des.html+des.java) function getResult() /待加密字符串 var str = document.getElementById(str).innerText; /第一个参数必须;第二个、第三个参数可选 var key1 = document.getElementById(key1).innerText; var key2 = document.getElementById(key2).innerText; var key3 = document
2、.getElementById(key3).innerText; /加密方法 var enResult = strEnc(str,key1,key2,key3); /解密方法 var deResult = strDec(enResult,key1,key2,key3); /展示结果 document.getElementById(enStr).innerText = enResult; document.getElementById(dnStr).innerText = deResult; 字符串: admin 加密key: key1=1;key2=2;key3=3 加密结果: 解密结果: 4
3、.java文件(des.java)package com.zz.test;import java.util.ArrayList;import java.util.List;public class Des public Des() public static void main(String args) Des desObj = new Des(); String key1 = 1; String key2 = 2; String key3 = 3; String data = admin; String str = desObj.strEnc(data, key1, key2, key3);
4、 System.out.println(str); String dec = desObj.strDec(str, key1, key2, key3); System.out.println(dec); /* * DES加密/解密 * * Copyright Copyright (c) 2006 * author Guapo * see DESCore */ /* * encrypt the string to string made up of hex return the encrypted string */ public String strEnc(String data, Strin
5、g firstKey, String secondKey, String thirdKey) int leng = data.length(); String encData = ; List firstKeyBt = null, secondKeyBt = null, thirdKeyBt = null; int firstLength = 0, secondLength = 0, thirdLength = 0; if (firstKey != null & firstKey != ) firstKeyBt = getKeyBytes(firstKey); firstLength = fi
6、rstKeyBt.size(); if (secondKey != null & secondKey != ) secondKeyBt = getKeyBytes(secondKey); secondLength = secondKeyBt.size(); if (thirdKey != null & thirdKey != ) thirdKeyBt = getKeyBytes(thirdKey); thirdLength = thirdKeyBt.size(); if (leng 0) if (leng 4) int bt = strToBt(data); int encByte = nul
7、l; if (firstKey != null & firstKey != & secondKey != null & secondKey != & thirdKey != null & thirdKey != ) int tempBt; int x, y, z; tempBt = bt; for (x = 0; x firstLength; x+) tempBt = enc(tempBt, (int) firstKeyBt.get(x); for (y = 0; y secondLength; y+) tempBt = enc(tempBt, (int) secondKeyBt.get(y)
8、; for (z = 0; z thirdLength; z+) tempBt = enc(tempBt, (int) thirdKeyBt.get(z); encByte = tempBt; else if (firstKey != null & firstKey != & secondKey != null & secondKey != ) int tempBt; int x, y; tempBt = bt; for (x = 0; x firstLength; x+) tempBt = enc(tempBt, (int) firstKeyBt.get(x); for (y = 0; y
9、secondLength; y+) tempBt = enc(tempBt, (int) secondKeyBt.get(y); encByte = tempBt; else if (firstKey != null & firstKey != ) int tempBt; int x = 0; tempBt = bt; for (x = 0; x firstLength; x+) tempBt = enc(tempBt, (int) firstKeyBt.get(x); encByte = tempBt; encData = bt64ToHex(encByte); else int itera
10、tor = (leng / 4); int remainder = leng % 4; int i = 0; for (i = 0; i iterator; i+) String tempData = data.substring(i * 4 + 0, i * 4 + 4); int tempByte = strToBt(tempData); int encByte = null; if (firstKey != null & firstKey != & secondKey != null & secondKey != & thirdKey != null & thirdKey != ) in
11、t tempBt; int x, y, z; tempBt = tempByte; for (x = 0; x firstLength; x+) tempBt = enc(tempBt, (int) firstKeyBt.get(x); for (y = 0; y secondLength; y+) tempBt = enc(tempBt, (int) secondKeyBt.get(y); for (z = 0; z thirdLength; z+) tempBt = enc(tempBt, (int) thirdKeyBt.get(z); encByte = tempBt; else if
12、 (firstKey != null & firstKey != & secondKey != null & secondKey != ) int tempBt; int x, y; tempBt = tempByte; for (x = 0; x firstLength; x+) tempBt = enc(tempBt, (int) firstKeyBt.get(x); for (y = 0; y secondLength; y+) tempBt = enc(tempBt, (int) secondKeyBt.get(y); encByte = tempBt; else if (firstK
13、ey != null & firstKey != ) int tempBt; int x; tempBt = tempByte; for (x = 0; x 0) String remainderData = data.substring(iterator * 4 + 0, leng); int tempByte = strToBt(remainderData); int encByte = null; if (firstKey != null & firstKey != & secondKey != null & secondKey != & thirdKey != null & third
14、Key != ) int tempBt; int x, y, z; tempBt = tempByte; for (x = 0; x firstLength; x+) tempBt = enc(tempBt, (int) firstKeyBt.get(x); for (y = 0; y secondLength; y+) tempBt = enc(tempBt, (int) secondKeyBt.get(y); for (z = 0; z thirdLength; z+) tempBt = enc(tempBt, (int) thirdKeyBt.get(z); encByte = temp
15、Bt; else if (firstKey != null & firstKey != & secondKey != null & secondKey != ) int tempBt; int x, y; tempBt = tempByte; for (x = 0; x firstLength; x+) tempBt = enc(tempBt, (int) firstKeyBt.get(x); for (y = 0; y secondLength; y+) tempBt = enc(tempBt, (int) secondKeyBt.get(y); encByte = tempBt; else
16、 if (firstKey != null & firstKey != ) int tempBt; int x; tempBt = tempByte; for (x = 0; x firstLength; x+) tempBt = enc(tempBt, (int) firstKeyBt .get(x); encByte = tempBt; encData += bt64ToHex(encByte); return encData; /* * decrypt the encrypted string to the original string * * return the original
17、string */ public String strDec(String data, String firstKey, String secondKey, String thirdKey) int leng = data.length(); String decStr = ; List firstKeyBt = null, secondKeyBt = null, thirdKeyBt = null; int firstLength = 0, secondLength = 0, thirdLength = 0; if (firstKey != null & firstKey != ) firs
18、tKeyBt = getKeyBytes(firstKey); firstLength = firstKeyBt.size(); if (secondKey != null & secondKey != ) secondKeyBt = getKeyBytes(secondKey); secondLength = secondKeyBt.size(); if (thirdKey != null & thirdKey != ) thirdKeyBt = getKeyBytes(thirdKey); thirdLength = thirdKeyBt.size(); int iterator = le
19、ng / 16; int i = 0; for (i = 0; i iterator; i+) String tempData = data.substring(i * 16 + 0, i * 16 + 16); String strByte = hexToBt64(tempData); int intByte = new int64; int j = 0; for (j = 0; j = 0; x-) tempBt = dec(tempBt, (int) thirdKeyBt.get(x); for (y = secondLength - 1; y = 0; y-) tempBt = dec
20、(tempBt, (int) secondKeyBt.get(y); for (z = firstLength - 1; z = 0; z-) tempBt = dec(tempBt, (int) firstKeyBt.get(z); decByte = tempBt; else if (firstKey != null & firstKey != & secondKey != null & secondKey != ) int tempBt; int x, y, z; tempBt = intByte; for (x = secondLength - 1; x = 0; x-) tempBt
21、 = dec(tempBt, (int) secondKeyBt.get(x); for (y = firstLength - 1; y = 0; y-) tempBt = dec(tempBt, (int) firstKeyBt.get(y); decByte = tempBt; else if (firstKey != null & firstKey != ) int tempBt; int x, y, z; tempBt = intByte; for (x = firstLength - 1; x = 0; x-) tempBt = dec(tempBt, (int) firstKeyB
22、t.get(x); decByte = tempBt; decStr += byteToString(decByte); return decStr; /* * chang the string into the bit array * * return bit array(its length % 64 = 0) */ public List getKeyBytes(String key) List keyBytes = new ArrayList(); int leng = key.length(); int iterator = (leng / 4); int remainder = l
23、eng % 4; int i = 0; for (i = 0; i 0) / keyBytesi = strToBt(key.substring(i*4+0,leng); keyBytes.add(i, strToBt(key.substring(i * 4 + 0, leng); return keyBytes; /* * chang the string(its length = 4) into the bit array * * return bit array(its length = 64) */ public int strToBt(String str) int leng = s
24、tr.length(); int bt = new int64; if (leng 4) int i = 0, j = 0, p = 0, q = 0; for (i = 0; i leng; i+) int k = str.charAt(i); for (j = 0; j j; m-) pow *= 2; / bt.set(16*i+j,+(k/pow)%2); bt16 * i + j = (k / pow) % 2; for (p = leng; p 4; p+) int k = 0; for (q = 0; q q; m-) pow *= 2; / bt16*p+q=parseInt(k/pow)%2; / bt.add(16*p+q,+(k/pow)%2); bt16 * p + q = (k / pow) % 2; else for (int i = 0; i 4; i+) int k = str.charAt(i); for (int j = 0; j 16; j+)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1