0
我想使用節點js將文本轉換爲數字的散列值。已經有一個Java程序來轉換,但使用節點js完成相同類型的實現。將文本轉換爲節點js中的散列值
Java代碼的
public static long generateId(String text) {
byte[] buffer = null;
MessageDigest md = null;
try {
md = MessageDigest.getInstance("SHA1");
md.reset();
buffer = text.getBytes(Charsets.UTF_8);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
md.update(buffer);
byte[] digest = md.digest();
String hexStr = "";
for (int i = 0; i < digest.length; i++) {
hexStr += Integer.toString((digest[i] & 0xff) + 0x100, 16).substring(1);
}
long hashid = 0;
for (int i = 0; i < hexStr.length(); i++)
hashid += Math.abs((long) Math.pow(27, 10 - i) * ('a' - (1 + hexStr.charAt(i))));
return hashid;
}
我能夠在這之後,我無法繼續轉化爲高達的NodeJS消化。
function generateHashCode()
{
var text = '9/01/2017'+'xx'+'405'+''+'SDD'+'MDD'+'9';
var crypto = require('crypto');
console.log(crypto.createHash('SHA1').update(text).digest("hex"));
var hexDigest = crypto.createHash('SHA1').update(text).digest("hex");
var hexStr;
}
請幫我在這
謝謝!最後一次迭代返回NaN – user3671807
@ user3671807究竟在哪裏?解釋更多! –
最後一個for循環中的hashid返回NaN,不確定是否缺少一些東西。 – user3671807