【鸿蒙实战开发】基于@ohos/crypto-js实现加解密工具箱

@ohos/crypto-js简介

@ohos/crypto-js是一个根据crypto-js库移植的鸿蒙三方库,适配源库4.2.0版本,提供了一系列加密算法和安全工具,主要用于执行各种消息摘要计算和对称加解密操作。

@ohos/crypto-js与cryptoFramework规格对比

@ohos/crypto-js不支持国密算法和非对称加解密算法,国密算法可以使用三方库 @yyz116/sm-crypto

消息摘要算法

MD5算法

MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,用于生成128位(32个十六进制数字)的消息摘要。

demo展示

代码实现

根据数据量,可以分段也可以不分段,该算法库目前没有对单次加密的数据量设置大小限制。

建议对于大数据量的对称加解密,采用多次分段的方式传入数据。

  • 一次性加密

调用CryptoJS.MD5接口,传入明文,生成密文。

// MD5加密

let mdOutput = CryptoJS.MD5('Message').toString()
  • 分段加密

根据数据量,可以分段也可以不分段,该算法库目前没有对单次加密的数据量设置大小限制。

建议对于大数据量的对称加解密,采用多次分段的方式传入数据。

调用CryptoJS.algo.MD5.create接口创建Hasher对象,通过update方法传入多段明文,通过finalize方法生成密文。

// 创建MD5Hasher实例

let md = CryptoJS.algo.MD5.create()

// 分段传入明文

md.update("Message Part 1")

md.update("Message Part 2")

md.update("Message Part 3")

// 完成加密,输出密文

let mdOutput = md.finalize().toString()

SHA算法

demo展示

SHA-1

SHA-1是基于MD4散列算法设计的,SHA-1接受最大长度为2^64位的消息,并生成一个160位的散列值。

代码实现

根据数据量,可以分段也可以不分段,该算法库目前没有对单次加密的数据量设置大小限制。

建议对于大数据量的对称加解密,采用多次分段的方式传入数据。

  • 一次性加密

    调用CryptoJS.SHA1接口,传入明文,生成密文。

// SHA1加密

let sha1Output = CryptoJS.SHA1('Message').toString()
  • 分段加密

    根据数据量,可以分段也可以不分段,该算法库目前没有对单次加密的数据量设置大小限制。

    建议对于大数据量的对称加解密,采用多次分段的方式传入数据。

    调用CryptoJS.algo.SHA1.create接口创建Hasher对象,通过update方法传入多段明文,通过finalize方法生成密文。

// 创建SHA1Hasher实例

let sha1 = CryptoJS.algo.SHA1.create()

// 分段传入明文

sha1.update("Message Part 1")

sha1.update("Message Part 2")

sha1.update("Message Part 3")

// 完成加密,输出密文

let sha1Output = sha1.finalize().toString()

SHA-2

SHA-2是一系列散列函数的统称,包括SHA-224、SHA-256、SHA-384和SHA-512等。

代码实现

  • 一次性加密(以SHA-256为例)

    调用CryptoJS.SHA256接口,传入明文,生成密文。

// SHA2加密

let sha256Output = CryptoJS.SHA256('Message').toString()
  • 分段加密(以SHA-256为例)

    根据数据量,可以分段也可以不分段,该算法库目前没有对单次加密的数据量设置大小限制。

    建议对于大数据量的对称加解密,采用多次分段的方式传入数据。

    调用CryptoJS.algo.SHA256.create接口创建Hasher对象,通过update方法传入多段明文,通过finalize方法生成密文。

// 创建SHA2Hasher实例

let sha256 = CryptoJS.algo.SHA256.cre
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值