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