[英]How to transmit an AES encryption key?
在我的Blackberry上,我正在创建AES密钥并加密数据。 然后,我先使用RSA加密AES密钥,然后再发送到客户端c#.net
AES密钥是一个字节数组。 如何将其转换为字符串,以便可以通过RSA对其进行加密,然后在.net端进行解密?
我必须转换为字符串吗?
我正在通过JSON传输数据。 我想我的问题确实是如何在JSON中传输but数组? 我将使用哪种字符编码?
谢谢。
您可以使用以下内容,这是URL安全的,并且相对容易目视检查。 这比Convert.ToBase64String需要更多的存储空间,但是固定宽度的加密密钥不应该成为问题。
string MyKey = BitConverter.ToString(MyAESKey); // dash removal is trivial here
要么
string MyKey = Convert.ToBase64String(MyAESKey);
代码样例
byte[] a = new byte[256/8];
Random random = new Random();
random.NextBytes(a);
string base64 = Convert.ToBase64String(a);
byte [] b = Convert.FromBase64String(base64);
if (a.SequenceEqual(b))
// true
string c = BitConverter.ToString(a);
string[] c1 = c.Split('-');
byte[] d = new byte[arr.Length];
for (int i = 0; i < arr.Length; i++) d[i] = Convert.ToByte(c1[i], 16);
if (a.SequenceEqual(d))
// true
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.