我正在尝试将以下 JAVA 代码复制到 C# 中,但我认为我做的不对o_o
(代码取自ftp://ftp.arlut.utexas.edu/pub/java_hashes/Sha512Crypt.java)
JAVA变量:
ctx, alt_ctx = MessageDigest
key = String(哈希密码)
salt = String(添加到哈希中的盐)
/* ---JAVA--- //
////////////////////////////////////////////////////
ctx.reset();
ctx.update(key, 0, key.length);
ctx.update(salt, 0, salt.length);
alt_ctx.reset();
alt_ctx.update(key, 0, key.length);
alt_ctx.update(salt, 0, salt.length);
alt_ctx.update(key, 0, key.length);
alt_result = alt_ctx.Digest();
//////////////////////////////////////////////////*/
C#变量:
ctx, alt_ctx = HashAlgorithm (SHA512Managed)
key 和 salt 与 JAVA 中的相同...
// --- C# EQUIV ? --- //
int TESTINGINT;
ctx = null;
ctx = new SHA512Managed();
ctx.TransformBlock(key, 0, key.Length, key, 0);
ctx.TransformBlock(salt, 0, salt.Length, salt, 0);
alt_ctx = null;
alt_ctx = new SHA512Managed();
alt_ctx.TransformBlock(key, 0, key.Length, key, 0);
alt_ctx.TransformBlock(salt, 0, salt.Length, salt, 0);
alt_ctx.TransformBlock(key, 0, key.Length, key, 0);
alt_result = alt_ctx.TransformFinalBlock(key, 0, key.Length); //most likely wrong here
//?????????????????????????????????????????????????????????//
就像我说的,很确定这是错误的......想知道是否有人知道确切的翻译。
我也一直在查看http://www.obviex.com/samples/hash.aspx以寻求帮助。然而,这并没有给我相同的输出,也没有任何 # 轮要做。
鉴于“beta”这个词,我试图最终复制以下内容(一行)
$6$rounds=60000$ZIFtW/dNUcD/k$O57sTkYwuRpQcgpnIdKLShfCVR7.vGzfMhvvWn7Mg8trGJsWADChhs6S5ONybnSBWHEHIQKw66a4i/YrA4y/y1
谢谢你的帮助