【问题标题】:.NET encryption techniques.NET 加密技术
【发布时间】:2015-05-13 10:24:54
【问题描述】:

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

所以在上述两种情况下,当用户加密消息时,他是否使用他的私钥并将公钥发布给公众以便他们可以检查消息?如有错误请指正。

或者用户是否对字符串进行哈希处理,然后用他的私钥加密?还是公钥?

我很困惑 .NET 中的加密是用作消息真实性的手段还是实际加密消息的内容

【问题讨论】:

  • 对称加密 = 快速,因此用于加密内容。非对称加密 = 慢,因此用于加密对称密钥。 (通过密钥交换。)
  • 这与.NET 没有任何关系。你只需要使用常用的 API 来处理不同的加密方法,但最终,你仍然在使用 AES/RSA 等。
  • 使用非对称密钥进行签名。 (私人签名,公共验证签名。)非对称=慢,散列=快,我们计算内容的散列并签名散列:)
  • 发送者用自己的公钥加密,然后接收者用自己的私钥解密?
  • @Nash5655 正好相反

标签: .net encryption


【解决方案1】:

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

非对称算法使用两个密钥:一个由发送者用来加密消息的私有密钥,一个由接收者用来解密它的公共密钥。

或者用户是否对字符串进行哈希处理,然后用他的私钥加密?还是公钥?

这称为“签名”,而不是“加密”。 要签署消息,您通常会对其进行哈希处理,然后使用非对称私钥“加密”哈希。然后接收方会使用发送方的公钥解密签名,得到发送方的hash,对原始消息进行hash得到自己的hash,并检查两个hash是否匹配。

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

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

【讨论】:

  • 能否举个实际例子
猜你喜欢
  • 2013-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-21
  • 1970-01-01
  • 2021-05-12
  • 1970-01-01
  • 2023-03-08
相关资源
最近更新 更多