Я пытаюсь скопировать следующий код 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)
ключи соль такие же, как в 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 для некоторой помощи.Это, однако, не дает мне тот же вывод и не имеет никаких # раундов, чтобы сделать.
Учитывая слово "бета", я пытаюсь в конечном итоге повторить следующую (одну строку)
$ 6 $ раундов = 60000 $ ZIFtW / dNUcD / k $ O57sTkYwuRpQcgpnIdKLShfCVR7.vGzfMhvvWn7Mg8trGJsWADChhs6S5ONybnSBWHEHIQKw66a4i * * * 10 * 10 / год / год / год