我有這個自定義函數來計算MD5哈希,用Java編寫。我無法改變它。我需要將它翻譯成JavaScript以便在客戶端使用它。我嘗試了我自己的,但我無法管理JavaScript數據類型(特別是Java char[]
)...任何幫助表示讚賞,謝謝!如何將這個定製的MD5 Java函數翻譯成JavaScript
// codes array
char[] codes = new char[64];
// initialise
private void initCodes(){
codes = new char[64];
codes[0] = '$';
int count = 0;
for (char i='0';i<='9';i++){ count++; codes[count] = i; }
for (char i='A';i<='Z';i++){ count++; codes[count] = i; }
for (char i='a';i<='z';i++){ count++; codes[count] = i; }
codes[63] = '£';
}
// custom MD5 algorithm
public String customMD5(String source) {
initCodes();
byte[] buf = new byte[source.length()];
buf = source.getBytes();
MessageDigest algorithm = null;
try {
algorithm = MessageDigest.getInstance("MD5");
} catch(NoSuchAlgorithmException e){}
algorithm.reset();
algorithm.update(buf);
byte[] digest = algorithm.digest();
int len = digest.length;
char[] encrypted = new char[len];
for (int i=0;i<len;i++)
encrypted[i] = codes[(int)(Math.floor((double)((digest[i]+128)/4)))];
return new String(encrypted);
}
如果你鍵入谷歌:「MD5的javascript」有很多現有的庫 – Mic 2011-05-24 13:02:42
的,但可能沒有LIB此*定製* MD5 – bluish 2011-05-24 13:19:17
的解決方案已經給出,但你不應該命名此*定製MD5 * - 它不是一個自定義的MD5(沒有這樣的事情 - 如果它是自定義的,它不是MD5),它只是MD5的自定義編碼。 – 2011-05-24 21:08:15