【问题标题】:convert Encryption Algo from C# to Java将加密算法从 C# 转换为 Java
【发布时间】:2016-08-22 06:09:08
【问题描述】:
public static string Encrypt(string KeyToEncrypt)
    {
        byte[] clearBytes = System.Text.Encoding.Unicode.GetBytes(KeyToEncrypt);
        Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(_Pwd, _Salt);
        //Calling another private method for Encryption
        byte[] encryptedData = Encrypt(clearBytes, pdb.GetBytes(32), pdb.GetBytes(16));
        return Convert.ToBase64String(encryptedData);
    }

    private static byte[] Encrypt(byte[] candelaData, byte[] Key, byte[] IV)
    {
        MemoryStream ms = new MemoryStream();
        CryptoStream cs = null;

            Rijndael alg = Rijndael.Create();
            alg.Key = Key;
            alg.IV = IV;
            cs = new CryptoStream(ms, alg.CreateEncryptor(), CryptoStreamMode.Write);
            cs.Write(candelaData, 0, candelaData.Length);
            cs.FlushFinalBlock();
            return ms.ToArray();
     }

我想在 java 中转换以下算法,我已经搜索了这些库,但什么都没有。请帮忙。 ?

【问题讨论】:

    标签: java rijndael cryptostream


    【解决方案1】:

    Darab ,您在 Java 中最好的选择必须是 Bouncy Castle。当我从代码中读取时,您有用于 crypt 的 API 以及 AES Rijndael。

    对于 Rejndael 部分,您可以参考:http://www.itcsolutions.eu/2011/08/24/how-to-encrypt-decrypt-files-in-java-with-aes-in-cbc-mode-using-bouncy-castle-api-and-netbeans-or-eclipse/。这让您对代码的 AES 部分有了一个大致的了解,而这里的这个问题Rfc2898DeriveBytes in java 也让您对加盐和 Rfc2898 有了一个很好的了解。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-21
      • 2012-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多