首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.NET加密技术

.NET加密技术
EN

Stack Overflow用户
提问于 2015-05-13 10:24:54
回答 1查看 262关注 0票数 0

我正在.NET中学习加密,似乎有两种方法,对称的:AES和非对称的:RSA或DSA。

因此,在上述两种情况下,当用户加密消息时,他是否使用自己的私钥并向公众发布公钥,以便他们能够检查消息?如果错了,请纠正我。

还是用户散列字符串,然后用他的私钥加密?还是公钥?

我很困惑.NET中的加密是用作消息真实性的一种手段,还是实际上是对消息的内容进行加密。

EN

回答 1

Stack Overflow用户

发布于 2015-05-13 10:37:15

对称加密算法只使用一个密钥,由双方共享。对称算法在加密大量数据方面速度更快。

非对称算法使用两个密钥:一个是发送方用来加密消息的私有密钥,另一个是收件人用来解密消息的公开密钥。

还是用户散列字符串,然后用他的私钥加密?还是公钥?

这被称为“签名”,而不是“加密”。要对消息进行签名,通常需要散列,然后使用非对称私钥对哈希进行“加密”。然后,接收方将使用发件人的公钥解密签名,并获取发件人的散列,散列原始消息以获得他自己的散列,并检查这两个散列是否匹配。

非对称算法速度较慢,但由于哈希比原始消息小得多,所以速度不是一个大问题。

签名是保证真实性的一种手段,它保证不被第三方篡改。

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

https://stackoverflow.com/questions/30212100

复制
相关文章

相似问题

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