2016-08-22 11 views
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에서 다음과 같은 변환을 원합니다. 라이브러리를 검색했지만 얻을 수 없습니다. 도와주세요. ?C#에서 Java로 암호화 알고리즘을 변환합니다.

답변

0

Darab, Java에서 가장 좋은 건 Bouncy Castle이어야합니다. 당신은 내가 코드에서 읽었을 때 AES Rijndael뿐만 아니라 소금물에 담기위한 API를 가지고 있습니다.

Rendndael 부분은 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에 대한 훌륭한 아이디어를 제공합니다.