大致代码如下:
FileStream
objFile
=
File
.
OpenRead(
"test.txt");
HashAlgorithm md5 = HashAlgorithm . Create( "MD5");
byte [] hashData = md5 . ComputeHash( objFile);
Console . WriteLine( Convert . ToBase64String( hashData . ToArray()));
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
RSAPKCS1SignatureFormatter RSAFormatter = new RSAPKCS1SignatureFormatter( RSA);
RSAFormatter . SetHashAlgorithm( "MD5");
byte [] signEncryptedData = RSAFormatter . CreateSignature( hashData);
string strCode = "";
//现实加密结果
for( int i = 0; i < signEncryptedData . Length; i ++)
{
strCode += " " + signEncryptedData [ i ]. ToString();
}
Console . WriteLine( strCode);
//解密认证
RSAPKCS1SignatureDeformatter RSADeformatter = new RSAPKCS1SignatureDeformatter( RSA);
//指定解密的时候HASH算法为MD5
RSADeformatter . SetHashAlgorithm( "MD5");
if ( RSADeformatter . VerifySignature( hashData , signEncryptedData))
{
Console . WriteLine( "确认");
}
else
{
Console . WriteLine( "NO");
}
HashAlgorithm md5 = HashAlgorithm . Create( "MD5");
byte [] hashData = md5 . ComputeHash( objFile);
Console . WriteLine( Convert . ToBase64String( hashData . ToArray()));
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
RSAPKCS1SignatureFormatter RSAFormatter = new RSAPKCS1SignatureFormatter( RSA);
RSAFormatter . SetHashAlgorithm( "MD5");
byte [] signEncryptedData = RSAFormatter . CreateSignature( hashData);
string strCode = "";
//现实加密结果
for( int i = 0; i < signEncryptedData . Length; i ++)
{
strCode += " " + signEncryptedData [ i ]. ToString();
}
Console . WriteLine( strCode);
//解密认证
RSAPKCS1SignatureDeformatter RSADeformatter = new RSAPKCS1SignatureDeformatter( RSA);
//指定解密的时候HASH算法为MD5
RSADeformatter . SetHashAlgorithm( "MD5");
if ( RSADeformatter . VerifySignature( hashData , signEncryptedData))
{
Console . WriteLine( "确认");
}
else
{
Console . WriteLine( "NO");
}