HarmonyOS DES加解密和JAVA加密后不一样?

尝试着使用了, Crypto Architecture Kit 中的 3DES 发现加解密和java不一样,请教下,对于下面的加解密方法该怎么翻译成 ArkTS ?

import org.apaches.commons.codec.binary.Base64
import java.net.URLEncoder
import java.security.SecureRandom
import javax.crypto.Cipher
import javax.crypto.SecretKey
import javax.crypto.SecretKeyFactory
import javax.crypto.spec.DESKeySpec
import javax.crypto.spec.IvParameterSpec
import javax.crypto.spec.SecretKeySpec

object SecurityUtil {
  //加密
  fun encryptByDES(data: String, password: String): String? {
    val cipher = Cipher.getInstance("DES")
    val datasource: ByteArray = data.toByteArray()
    val random = SecureRandom()
    val desKey = DESKeySpec(password.toByteArray())
    val keyFactory: SecretKeyFactory = SecretKeyFactory.getInstance("DES")
    val securekey: SecretKey = keyFactory.generateSecret(desKey)

    cipher.init(Cipher.ENCRYPT_MODE, securekey, random)
    return Base64.encodeBase64String(cipher.doFinal(datasource))
  }
    //解密 
    fun decryptByDES(srcc: String, password: String): ByteArray? {
    val src = Base64.decodeBase64(srcc)
    val random = SecureRandom()
    // 创建一个DESKeySpec对象
    val desKey = DESKeySpec(password.toByteArray())
    // 创建一个密匙工厂
    val keyFactory = SecretKeyFactory.getInstance("DES")
    // 将DESKeySpec对象转换成SecretKey对象
    val securekey = keyFactory.generateSecret(desKey)
    // Cipher对象实际完成解密操作
    val cipher = Cipher.getInstance("DES")
    // 用密匙初始化Cipher对象
    cipher.init(Cipher.DECRYPT_MODE, securekey, random)
    return cipher.doFinal(src)
  }
}
HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Excelsior_abit

3DES算法的加解密过程分别是对明文/密文数据进行三次DES加密或解密,得到相应的密文或明文。参考链接:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/crypto-sym-encrypt-decrypt-spec-V5#section3des

目前支持3DES,还不支持DES(DES是不安全算法)。

三方库也可以实现DES的加解密,三方库参考链接:

https://ohpm.openharmony.cn/#/cn/detail/@ohos%2Fcrypto-js

三方库支持的算法的相关demo链接:

https://gitee.com/openharmony-sig/crypto-js/blob/master/entry/src/main/ets/pages/Index.ets

解决方案参考:

https://gitee.com/openharmony-sig/crypto-js/issues/IAC3PF

分享
微博
QQ
微信
回复
1天前
相关问题
鸿蒙安卓有什么不一样
6475浏览 • 3回复 待解决
Web组件获取高度不一样
2315浏览 • 1回复 待解决
#鸿蒙通关秘籍#HSPHAR有啥不一样
144浏览 • 1回复 待解决
HarmonyOS Sm2DES加解密问题
512浏览 • 1回复 待解决
HarmonyOS 如何进行DES加解密
598浏览 • 1回复 待解决
HarmonyOS 关于DES加解密的疑问
31浏览 • 1回复 待解决
HarmonyOS 3des加解密失败
20浏览 • 1回复 待解决