我正在UWP上开发一个应用程序,在这里我使用Azure目录表存储(因此我必须加密连接字符串)。
必须加密一次,但必须在其他设备上解密。
如何在哪里存储加密密钥?
我应该使用哪种算法?
我尝试了在这里找到的RSA算法:http://www.japf.fr/2013/05/rsa-cryptography-between-a-winrt-and-a-dotnet-app/
但是我不能将密钥存储在JSON文件中...我不明白为什么
我想在将要在其他设备上共享的配置文件中加密连接字符串,并在它们上也对其解密。
答案 0 :(得分:0)
关于RSA密钥: 最后,我使用RSA算法对其进行加密,公钥将存储在配置文件中,而私钥将存储在应用程序的本地KeyVault中。
我只是将字节数组转换为十六进制字符串,以将其像字符串一样存储在JSON文件中。
using System.Linq;
public static byte[] HexToByteArray(string s)
{
return Enumerable.Range(0, s.Length)
.Where(x => x % 2 == 0)
.Select(x => Convert.ToByte(s.Substring(x, 2), 16))
.ToArray();
}
public static string ByteArrayToHex(byte[] b)
{
return BitConverter.ToString(b).Replace("-", "");
}