0
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中转换以下算法,我已经搜索了库并且什么都没有。请帮忙。?

4

1 回答 1

0

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

对于 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 有了一个很好的了解。

于 2016-08-22T06:25:19.237 回答