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
赞
收藏 0
回答 1
待解决
相关问题
鸿蒙和安卓有什么不一样啊
6475浏览 • 3回复 待解决
Web组件获取高度不一样
2315浏览 • 1回复 待解决
HarmonyOS picker 如何实现“展示和选中内容不一样”
421浏览 • 1回复 待解决
HarmonyOS rawfile 和 resfile 目录功能有啥不一样?
89浏览 • 1回复 待解决
#鸿蒙通关秘籍#HSP和HAR有啥不一样?
144浏览 • 1回复 待解决
HarmonyOS rcp请求每个接口的header不一样
22浏览 • 1回复 待解决
tabs能否标题栏宽度和底部视图宽度不一样?
295浏览 • 1回复 待解决
#鸿蒙通关秘籍#问问哈,ArkTS和TypeScript有啥不一样?
152浏览 • 1回复 待解决
请问xml布局写法为什么和xml规定的语法不一样
4172浏览 • 1回复 已解决
HarmonyOS webview设置cookie,用fetchCookieSync拿到的cookie和设置的不一样
22浏览 • 1回复 待解决
HarmonyOS 同一个颜色值,为啥backgroundColor和linearGradient显示的不一样
32浏览 • 1回复 待解决
ets的中文字符的长度和后端不一样是否合理
444浏览 • 1回复 待解决
textarea的placeholder和text 大小不一样,textinput也是,最后的长度不一致
1068浏览 • 1回复 待解决
HarmonyOS 使用webview加载网页,显示页面和手机自带的浏览器不一样
472浏览 • 1回复 待解决
HarmonyOS Sm2和DES加解密问题
512浏览 • 1回复 待解决
HarmonyOS Web控件getPageHeight()获取高度方法与网页实际高度不一样
101浏览 • 1回复 待解决
Cipher DES加解密,使用cryptoFramework.createCipher无法实现DES加解密,如何实现?
228浏览 • 1回复 待解决
HarmonyOS 的多渠道打包,logo 名字包名都不不一样如何实现
37浏览 • 1回复 待解决
#鸿蒙通关秘籍#我好奇,应用沙箱目录和应用文件目录有啥不一样?
115浏览 • 1回复 待解决
HarmonyOS 组件重用,复用的地方所需属性的值不一样如何规避
52浏览 • 1回复 待解决
HarmonyOS 如何进行DES加解密
598浏览 • 1回复 待解决
HarmonyOS 关于DES加解密的疑问
31浏览 • 1回复 待解决
HarmonyOS 3des加解密失败
20浏览 • 1回复 待解决
HarmonyOS C-API创建TexArea和Input在内容为空的情况下高度不一样
294浏览 • 1回复 待解决
平板安装HarmonyOS后,怎么查看SDK版本?如果和开发使用的SDK版本不一样,需要怎么来升级SDK版本?
8107浏览 • 1回复 待解决
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