rijndael 256键

时间:2012-04-25 16:36:15

标签: c# rijndael

如何创建密钥和iv,以便加密字符串只包含数字和字符.key字符串和iv字符串应包含32个字符。目的是加密字符串不应包含任何特殊字符。块大小为256。 现在我正在使用密钥和iv这样。使用此加密后,获取带有特殊字符的加密字符串。我们可以避免这种情况。

AES_KEY = PSVJQRk9QTEpNVU1DWUZCRVFGV1VVT0ZOV1RRU1NaWQ =

Aes_iv = YWlFLVEZZUFNaWlhPQ01ZT0lLWU5HTFJQVFNCRUJZVA =

1 个答案:

答案 0 :(得分:2)

您需要对输出进行Base64编码。这将确保它只能打印ASCII,并且是存储/传输加密数据的标准配置。

您希望您的密钥和IV完全随机。仅仅因为你的钥匙上没有特殊字符,并不代表你在输出中没有获得特殊字符。绝对没有相关性。它看起来像你的钥匙,IV在那里是base64编码。确保使用原始密钥和IV。

这里是如何在C#中完成的。假设您的AES输出是字节数组:

        string encoded = System.Convert.ToBase64String(aesOutput);

如果它是一个字符串:

        byte[] encodedBytes = System.Text.Encoding.ASCII.GetBytes(aesOutput);
        string base64encoded = System.Convert.ToBase64String(encodedBytes);

您可以使用System.Convert.FromBase64String(encodedData)将其转换回原始输出。