MD5是单向加密,没有解密的方法,如果要用加密,解密,还是用RSA和DSA
解决方案 »
- 如何把得到的IP"12.1.168.192\0\0\0"转换成正着显示的“192.168.1.12”?
- C#动态调用dll
- 怎样把ImageList中的图片读出来?
- 水晶报表动态分页问题!!急!!在线等!!
- 为什么我在任务管理器中看不到程序开的的线程?
- 可以用继承 Component类的方法写数据库访问操作类不????
- 为什么错误?(c# sqlserver)
- 非泛型的ArrayList存储string,是否会涉及拆箱和装箱
- 自定义树控件的又一问题
- SQL Server如何发布?
- 请问editplus+.net哪里有下载?
- 文件按流读取,其中有阿拉伯文的unicode编码,怎样将其按十六进制表出,请教
{
byte[] signaturePassword = null;
try
{ CspParameters cp=new CspParameters();
cp.Flags=CspProviderFlags.UseMachineKeyStore; System.Text.Encoding encoding = System.Text.Encoding.Unicode;
SHA1Managed SHhash = new SHA1Managed();
byte[] clearPassword = SHhash.ComputeHash(encoding.GetBytes(password));
//Generate a public/private key pair.
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(cp);
//Create an RSAPKCS1SignatureFormatter object and pass it the
//RSACryptoServiceProvider to transfer the private key.
RSAPKCS1SignatureFormatter RSAFormatter = new RSAPKCS1SignatureFormatter(RSA);
//Set the hash algorithm to SHA1.
RSAFormatter.SetHashAlgorithm("SHA1");
signaturePassword = RSAFormatter.CreateSignature(clearPassword);
}
catch(CryptographicException ce)
{
string error = ce.Message;
throw ce;
}
catch(Exception e)
{
string error = e.Message;
throw e;
}
return signaturePassword;
}
相对于这个加密过程的解密过程应该怎么写?
{
//这是密匙
CspParameters cp=new CspParameters();
cp.Flags=CspProviderFlags.UseMachineKeyStore;System.Text.Encoding encoding = System.Text.Encoding.Unicode;
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(cp);
//加密过程
return RSA.Encrypt(encoding.GetBytes(password),false);
}public string[] MyEncrypt(byte[] EncryptData)
{
//这是密匙
CspParameters cp=new CspParameters();
cp.Flags=CspProviderFlags.UseMachineKeyStore;System.Text.Encoding encoding = System.Text.Encoding.Unicode;
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(cp);
//解密过程
return encoding.GetString(RSA.Decrypt(EncryptData,false));
}
{
//这是密匙
CspParameters cp=new CspParameters();
cp.Flags=CspProviderFlags.UseMachineKeyStore;System.Text.Encoding encoding = System.Text.Encoding.Unicode;
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(cp);
//加密过程
return RSA.Encrypt(encoding.GetBytes(password),false);
}public string[] MyDecrypt(byte[] EncryptData)
{
//这是密匙
CspParameters cp=new CspParameters();
cp.Flags=CspProviderFlags.UseMachineKeyStore;System.Text.Encoding encoding = System.Text.Encoding.Unicode;
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(cp);
//解密过程
return encoding.GetString(RSA.Decrypt(EncryptData,false));
}
比如对密码的检验假如 “a” 加密后变为“dwe232”
当你检验密码是否正确是,不是要你对“dwe232”揭密然后和"a"比较,
你可以对你输入的值进行同样算法的加密处理然后比较是否和“dwe232”相同……
data不正确;
什么意思?