@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