微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 Android Kotlin 加密芯片迁移到 Flutter Dart

如何解决从 Android Kotlin 加密芯片迁移到 Flutter Dart

我正在尝试使用 Dart 将解密代码从 Android 平台替换为 Flutter 并且在使用 3D(DESede) 解密算法时遇到问题,

Kotlin 代码:(Android 加密)

   val data2 = Base64.decode("9KOnBwiSR/SY60q55ashNg==",Base64.NO_WRAP)
        val myKey = SecretKeySpec("aRVFPuBfEPZH6k01".toByteArray(),"DESede")

        val c3des = Cipher.getInstance("DESede/ECB/nopadding")
        c3des.init(Cipher.DECRYPT_MODE,myKey)
        val cipherText = c3des.doFinal(data2)

        return String(cipherText)

试过这个没有成功(Flutter Dart encrypt)(结果不一样)

 String key = "aRVFPuBfEPZH6k01"; 
 DES3(key: key.codeUnits,mode: DESMode.ECB,paddingType:
 DESPaddingType.None);   
 decrypted =
     des3ECB.decrypt("9KOnBwiSR/SY60q55ashNg==".codeUnits);

安卓输出:JW3oeiEXifmR4s0x
颤振输出:%WëØpè6¢Ld7xïg´8B\M

我该如何实现这段代码? 谢谢!

解决方法

如果对某人有帮助 这是正确的代码

DES3 des3ECB = DES3(key:  ENC.Encrypted.fromUtf8("aRVFPuBfEPZH6k01").bytes,mode: DESMode.ECB,paddingType: DESPaddingType.None);
  decrypted = des3ECB.decrypt(ENC.Encrypted.fromBase64("9KOnBwiSR/SY60q55ashNg==").bytes);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。