首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RSACryptoServiceProvider助手

RSACryptoServiceProvider助手
EN

Stack Overflow用户
提问于 2013-09-17 23:51:58
回答 1查看 405关注 0票数 1

我正在寻找RSACryptoServiceProvider助手,并找到了两个不同的实现

1) http://www.cnblogs.com/WYB/archive/2008/06/19/1225704.html

2) https://github.com/robvolk/Helpers.Net/blob/master/Src/Helpers.Net/EncryptionExtensions.cs

他们俩都在工作

代码语言:javascript
复制
var encryptedBytes = myBytes.RSAEncrypt(publicKey);
System.Text.Encoding.Unicode.GetString(encryptedBytes); 
returns strings like "蹩巷Ӂය馧㾵봽놶徤蕺蓷課Ϝ堲泍썳⁙䃑ക늏...."

myString.EncryptStringUsingXMLFile(publicKey) 
returns strings like "AnvFFT6YpoiAyIFwl+tueZq56Zcb0B7WhBEvz5uWl...."

也许有人可以解释为什么第一次产生中文字符串,以及如何改变这一点?

哪种方法更好?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-18 04:38:41

回答你的第一个问题。虽然它看起来像是在生成汉字,但实际上它正在将一个字节数组转换为unicode。在c#中,通常情况下,当您想要存储一个字节数组时,可以将它转换为base64,这就是您的第二个示例所返回的内容。

您的第一个示例如下:

代码语言:javascript
复制
var encryptedBytes = myBytes.RSAEncrypt(publicKey);
Convert.ToBase64String(encryptedBytes) // this line changed
returns strings like "AnvFFT6YKpoiAy...."

至于推荐的内容,最常见的是使用base64。人们在unicode或UTF-8上使用base64来处理二进制数据的原因可以在以下答案中找到:

https://stackoverflow.com/a/201491/701062

MSDN - Convert.ToBase64String(byte[])

http://msdn.microsoft.com/en-us/library/dhx0d524(v=vs.100).aspx

MSDN -Convert.FromBase64String(字符串)-如果需要将其转换回字节数组,则非常有用。

http://msdn.microsoft.com/en-us/library/system.convert.frombase64string(v=vs.100).aspx

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18861742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档