1
我正在使用Rijndael對稱算法實現加密。這是工作,但我想改變這個工作,以任何關鍵。我不想生成密鑰,我想讓用戶選擇他自己的密鑰,就像他的密碼加密一樣。如何使用任何密鑰加密
RijndaelManaged myRijndael = new RijndaelManaged();
myRijndael.GenerateKey();
myRijndael.GenerateIV();
var encryptor = new RijndaelManagedEncryption();
var encrypted = encryptor.EncryptSettingValue(myRijndael.Key, "Encrypt this", myRijndael.IV);
例如像這樣
RijndaelManaged myRijndael = new RijndaelManaged();
myRijndael.GenerateIV();
var key = Convert.FromBase64String("pasword")
var encryptor = new RijndaelManagedEncryption();
var encrypted = encryptor.EncryptSettingValue(key , "Encrypt this", myRijndael.IV);
但如果我這樣做,我會得到異常:
型「System.FormatException」未處理的異常出現在mscorlib.dll 其他信息:Base-64字符數組或字符串的無效長度。
如果你想看到的算法,這是鏈接:https://msdn.microsoft.com/en-us/library/system.security.cryptography.rijndaelmanaged(v=vs.110).aspx所有的
謝謝。以及如何回去?如何從密鑰獲取密碼? – Raskolnikov 2015-03-25 07:54:08
爲什麼你需要從密鑰獲取密碼?典型用例:用戶提供密碼,您正在生成密鑰並使用該密鑰進行加密/解密。反向密鑰 - >密碼根本不需要,而且,據我所知,這是不可能的。 – 2015-03-25 07:56:03
@ merso0027如果您有任意長度的密碼短語,您如何期望從密鑰長度中獲得密碼短語?任意密碼短語根本不可行。 – 2015-03-25 08:07:07