none
RSA加密每次密文不一样? RRS feed

  • 问题

  • string xmlPublicKey = "<RSAKeyValue><Modulus>uOMVRWVhMuGmnN7snAxmWmWb1cQejrExHlKnFcNxiXjx49nFRu7YCOovVCJBVNNa1g9b5BqU21KGBV7eArLmlTxGl1fzZU7KAG+HarctuBoCECVm7ViPVmAdfTSxo9hJco5uRVWECE4zB9JEA2c691E1jr3BLSyK5IfUS0/9a9k=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>";

    string encodeStr = RSAEncrypt(xmlPublicKey, "password123");

    Console.WriteLine(encodeStr);

    ////////RSA的加密函数  string
           static public string RSAEncrypt(string xmlPublicKey, string m_strEncryptString)
            {
                byte[] PlainTextBArray;
                byte[] CypherTextBArray;
                string Result;
                RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
                rsa.FromXmlString(xmlPublicKey);
                PlainTextBArray = (new UnicodeEncoding()).GetBytes(m_strEncryptString);
                CypherTextBArray = rsa.Encrypt(PlainTextBArray, false);
                Result = Convert.ToBase64String(CypherTextBArray);
                return Result;
            }

    同一个公钥,为什么每次加密后出来的密文都不一样呢?

    2013年1月17日 7:04

答案

  • 不一样就对了,一样才有问题。这和RSA算法采用的PADDING模式有关。
    • 已标记为答案 qi.fan 2013年1月18日 9:02
    2013年1月17日 7:21
  • 你好!

    RSA 每次加密不一样是正常,但用对应的密钥能解密出一样的内容。


    知识改变命运,奋斗成就人生!

    • 已标记为答案 qi.fan 2013年1月18日 9:02
    2013年1月18日 8:57
    版主

全部回复