MD5是单向加密,没有解密的方法,如果要用加密,解密,还是用RSA和DSA

解决方案 »

  1.   

    单项加密岂不是一点用处都没有吗?我想再次得到strHash的值.有没有什么参考的网页?
      

  2.   

    http://expert.csdn.net/Expert/topic/1416/1416242.xml?temp=.6852991
      

  3.   

    public byte[] SignaturePassword(string password)
    {
    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;
    }
    相对于这个加密过程的解密过程应该怎么写?
      

  4.   

    public byte[] MyEncrypt(string password)
    {
    //这是密匙
    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));
    }
      

  5.   

    public byte[] MyEncrypt(string password)
    {
    //这是密匙
    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));
    }
      

  6.   

    单项加密怎么会没有
    比如对密码的检验假如 “a” 加密后变为“dwe232”
    当你检验密码是否正确是,不是要你对“dwe232”揭密然后和"a"比较,
    你可以对你输入的值进行同样算法的加密处理然后比较是否和“dwe232”相同……
      

  7.   

    解密过程报错:return encoding.GetString(RSA.Decrypt(EncryptData,false));
    data不正确;
    什么意思?