Skip to main content
 首页 » 编程设计

c#之尝试创建一个 256 位 key 以存储在 web.config 中

2024年02月05日27lovecherry

我正在尝试创建一个 256 位 key 并在 AES 加密中使用它,我需要将其存储在我的 web.config 文件中,因此必须将其转换为字符串。

我使用的密码库是:https://gist.githubusercontent.com/jbtule/4336842/raw/8da408b55fe9f94adb3319ed6491897d0ebac790/AESThenHMAC.cs

例如,方法签名如下所示:

public static string SimpleEncrypt(string secretMessage, byte[] cryptKey, byte[] authKey, 
                                           byte[] nonSecretPayload = null) 

我尝试了以下但它返回了有趣的字符:

var hmac = new HMACSHA256(); 
var keyHex = System.Text.Encoding.UTF8.GetString(hmac.Key); 

我需要创建一个类似的 key ,这将是相同的过程,因为它也是 256 位的,我需要存储在 web.conf 文件中。

希望有人能帮助我

请您参考如下方法:

作为一般规则,当需要将任意二进制数据存储为文本时(例如,将字节数组作为文本存储在属性文件中),则应使用更便携的二进制数据形式。

其中有很多,使用取决于开发人员的偏好、预期用途、性能问题等。

当今最常用的二进制数据可移植存储格式是 Base 64 ( https://en.wikipedia.org/wiki/Base64 )。将字节存储到文本文件时应将字节转换为 Base64 字符串,并在将其加载到代码中时将其转换回字节。

在 C# 中,要使用的实现会因实际平台而异,而且您总能找到许多提供此实现的库。例如,在某些版本的 .NET 框架中,您可以使用 https://msdn.microsoft.com/en-us/library/dhx0d524(v=vs.110).aspx和 https://msdn.microsoft.com/en-us/library/system.convert.frombase64string(v=vs.110).aspx