有人可以解释以下代码..
返回语句会做什么。
public byte[] sign(string text)
{
string password = "1234";
X509Certificate2 cert = new X509Certificate2("c:\\certificate.pfx", password);
RSACryptoServiceProvider crypt = (RSACryptoServiceProvider)cert.PrivateKey;
SHA1Managed sha1 = new SHA1Managed();
UnicodeEncoding encoding = new UnicodeEncoding();
byte[] data = encoding.GetBytes(text);
byte[] hash = sha1.ComputeHash(data);
return crypt.SignHash(hash, CryptoConfig.MapNameToOID("SHA1"));
}
答案 0 :(得分:1)
public byte[] sign(string text)
{
//Password for the PFX certificate
string password = "1234";
//Importing the PFX certificate that contains the private key which will be used for creating the digital signature
X509Certificate2 cert = new X509Certificate2("c:\\certificate.pfx", password);
//declaring RSA cryptographic service provider
RSACryptoServiceProvider crypt = (RSACryptoServiceProvider)cert.PrivateKey;
//cryptographic hash of type SHA1
SHA1Managed sha1 = new SHA1Managed();
//encoding the data to be signed
UnicodeEncoding encoding = new UnicodeEncoding();
byte[] data = encoding.GetBytes(text);
//generate Hash
byte[] hash = sha1.ComputeHash(data);
//sign Hash
return crypt.SignHash(hash, CryptoConfig.MapNameToOID("SHA1"));
}
答案 1 :(得分:0)
SignHash(byte [],string)方法将根据从证书中读取的私钥计算您传递的哈希值的签名作为第一个参数。见这里:
RSACryptoServiceProvider.SignHash Method
此结果(随后返回)将是一个包含签名的byte [],您可以将其与数据一起发送,以便其他人使用您的公钥验证签名。