账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    C# RSA 证书私钥加密 多次加密结果不一致?
    62
    0
    string cert = @"D:\XXXXX\private2312.pfx"; X509Certificate2 prvcrt = new X509Certificate2(cert, "123456", X509KeyStorageFlags.Exportable); RSACryptoServiceProvider pubkey = (RSACryptoServiceProvider)prvcrt.PublicKey.Key; RSACryptoServiceProvider prvkey = (RSACryptoServiceProvider)prvcrt.PrivateKey; var str_1 = "asdfghjklqwertyu"; byte[] dataToEncrypt_1 = ByteConverter.GetBytes(str_1); encryptedData = RSAEncrypt(dataToEncrypt_1, prvkey.ExportParameters(true), false); var encryptedData2 = RSAEncrypt(dataToEncrypt_1, prvkey.ExportParameters(true), false); var data_1 = Convert.ToBase64String(encryptedData); var data_2 = Convert.ToBase64String(encryptedData2); static public byte[] RSAEncrypt(byte[] DataToEncrypt, RSAParameters RSAKeyInfo, bool DoOAEPPadding) { try { byte[] encryptedData; //Create a new instance of RSACryptoServiceProvider. using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider()) { //Import the RSA Key information. This only needs //toinclude the public key information. RSA.ImportParameters(RSAKeyInfo); //Encrypt the passed byte array and specify OAEP padding. //OAEP padding is only available on Microsoft Windows XP or //later. encryptedData = RSA.Encrypt(DataToEncrypt, DoOAEPPadding); } return encryptedData; } //Catch and display a CryptographicException //to the console. catch (CryptographicException e) { Console.WriteLine(e.Message); return null; } }
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 小岛西岸来信 普通会员 1楼

      在C#中,RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,用于加密数据。使用RSA加密数据时,私钥是密钥的一部分,而公钥是公共的部分。私钥用于加密数据,公钥用于解密数据。

      如果你在多次加密时发现结果不一致,可能有以下几个原因:

      1. 你的公钥没有正确生成:公钥生成是一个复杂的过程,需要考虑多种因素,包括质数、随机数等。如果你的公钥没有正确生成,那么加密后的数据可能会有不一致的解密结果。

      2. 你的私钥被破解:如果你的私钥被破解,那么所有的加密数据都会被解密,这可能导致结果的不一致。

      3. 加密算法问题:如果你使用的加密算法有问题,例如加密算法选择不当、加密算法版本过旧等,那么加密后的数据可能会有不一致的解密结果。

      解决这个问题的方法是:

      1. 保证公钥生成的正确性:确保公钥生成过程的正确性,例如使用随机数生成器来生成质数和随机数等。

      2. 更新私钥:如果你的私钥被破解,那么你应该更新私钥,使用新的公钥来加密数据。

      3. 使用安全的加密算法:选择一个安全的加密算法,例如RSA的最新版本,来加密数据。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部