none
c# RSA的实现 RRS feed

  • 问题

  • 我把密钥放在文本文件里,是Xmlstring,怎么两次调用密钥加密相同信息的时候出现了不同结果啊 RSACryptoServiceProvider rsa1 = new RSACryptoServiceProvider();//新建RSA对象 StreamReader KeyWrite = new StreamReader(E:\\MY C#\\WindowsApplication1\\WindowsApplication1\\keyfile.txt;); string pKey = KeyWrite.ReadToEnd();//读文件,把字符串放到pKey里 rsa1.FromXmlString(pKey);//用密钥初始化rsa1 byte[] RSA_Result = rsa1.Encrypt(HASH_VASN, false);//加密 KeyWrite.Close(); 两次调用RSA_Result 结果不同
    2009年7月4日 7:01

答案

  • 噢 知道了
    Dotnet的RSA实现有个特点,它必须要在明文中添加一些随机数,所以明文不能把128字节占满,实际测试,明文最多为117字节,留下的空间用来填充随机数。所以,用同一个密钥对同一串字符串进行加密,每次得到的密文都是不一样的。

    我再问下大家有没有办法使密文相同呀
    2009年7月4日 7:19

全部回复