【问题标题】:Port Java AES ECB encryption into UWP compatible C# Code将 Java AES ECB 加密移植到 UWP 兼容的 C# 代码中
【发布时间】:2017-05-26 06:35:11
【问题描述】:

我是密码学领域的新手,在这个问题上卡了两天。

我有一个用于 AES/ECB 加密的 java 代码,我希望我的 uwp 应用程序使用相同的加密技术,但到目前为止我尝试过的任何方法都会给出不同的加密结果。 stackoverflow上有很多答案建议使用RijndaelManaged类,但是这个类不适用于UWP

这里是java sn-p

 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);
}

【问题讨论】:

    标签: java c# encryption cryptography


    【解决方案1】:

    您需要使用this answer 来查看如何加密/解密。但是,您需要一种不同的(ECB 如此不安全)算法。因此,您需要使用来自SymmetricAlgorithmNamesAesEcbPkcs7,而不是给定的CBC 密码模式。


    注意事项:

    • PKCS#7 与 Java 代码中使用的 PKCS#5 相同,更多信息here;
    • 您当然不需要将 IV 用于 ECB 模式,因此请去掉它;
    • 我将省略 UTF-8 编码和 base 64 解码,在任何语言/环境中进行这些编码应该很容易(ConvertUTF8Encoding 类似乎可用于 UWP 应用程序)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-30
      • 2014-03-06
      • 2012-06-18
      • 1970-01-01
      • 2016-05-14
      • 1970-01-01
      • 2017-11-11
      相关资源
      最近更新 更多