2017-05-25 80 views
0

我在密碼學領域非常新,並且一直困擾着這個問題兩天。端口Java AES ECB加密爲UWP兼容C#代碼

我對AES/ECB加密的Java代碼,我希望我的uwp應用程序使用相同的加密技術,但是到目前爲止我嘗試過的任何加密結果都不相同。 在stackoverflow上有很多答案建議使用RijndaelManaged類,但該類不適用於UWP

這裏的Java代碼

public string encrypt(String input, string key) { 
    SecretKeySpec skey = new SecretKeySpec(key.getBytes("UTF-8"), "AES"); 
    Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); 
    cipher.init(Cipher.ENCRYPT_MODE, skey); 
    crypted = cipher.doFinal(input.getBytes("UTF-8")); 
    return Base64.encodeToString(crypted,Base64.NO_WRAP); 
} 

回答

0

您需要使用this answer來看看如何加密/解密。但是,您需要一個不同的(ECB如此不安全)算法。因此,而不是給定的CBC密碼模式,您需要使用SymmetricAlgorithmNames中的AesEcbPkcs7


注:

  • PKCS#7是相同的PKCS#5作爲Java代碼使用的,詳細信息here;
  • 你當然不需要在ECB模式下使用IV,所以將其去掉;
  • UTF-8編碼和base 64解碼我會離開,在任何語言/環境下執行這些編碼應該很容易(ConvertUTF8Encoding類似乎可用於UWP應用程序)。