繁体   English   中英

如何传输AES加密密钥?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM