Jas*_*ban 12
AFAIK,虽然公钥和私钥之间的数学技术没有区别,但出于安全考虑,您需要始终如一地使用它们.
您要求使用私钥加密并使用公钥解密.这通常是错误的方式.如果你想走这个方向,它通常是一个叫做"数字签名"的操作.
如果您使用私钥进行签名,使其可以通过公钥进行反转,那么这并不是一个秘密.我假设您只是尝试将邮件验证为来自发件人的合法邮件.您需要的是数字签名 - 仍然使用公钥 - 私钥(或"非对称")密钥执行.
使用数字签名,消息本身并不是秘密(没有必要,因为任何拥有公钥的人都可以解密它)但是伴随着基于消息的附加数据,这些数据可以使用公钥进行验证,并且只能被计算出来由具有匹配私钥的人.
它看起来像下面这样.现在你只需弄清楚你将获得钥匙的位置.
static byte[] GenerateDigitalSignature(byte[] data, RSAParameters asymmetricKey)
{
using (var rcsp = new RSACryptoServiceProvider())
using (var cp = new SHA1CryptoServiceProvider())
{
rcsp.ImportParameters(asymmetricKey);
return rcsp.SignData(data, cp);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14782 次 |
| 最近记录: |