有人可以請指教,爲什麼計算後的散列,存儲一個負值e?散列後爲什麼是負值?
static byte[] bytes;
BigInteger[] numbers = {A, ANeg, Aseed, AseedNeg, C1, C2, C1Neg, C2Neg};
foreach (BigInteger number in numbers)
{
bytes = number.ToByteArray();
}
SHA1 sha = new SHA1CryptoServiceProvider();
hash = sha.ComputeHash(bytes);
e = new BigInteger(hash);
這取決於生成的散列的最高位,心不是它? – LINQ2Vodka
您是否試圖將哈希轉換回BigInteger?你不能那樣做。 –
這個'BigInteger'構造函數有很好的文檔記錄 - 如果最高位是1,則結果編號是負數。但它也沒有意義:SHA1哈希不僅僅是一個加密文本塊的數字。這只是一堆字節,你正在給它一個你所選擇的「含義」。 – Jon