首页 > 编程语言 >【开源三方库】crypto-js加密算法库的使用方法

【开源三方库】crypto-js加密算法库的使用方法

时间:2023-09-08 11:55:44浏览次数:58  
标签:AES 加密 crypto js SHA CryptoJS 加密算法

 OpenAtom OpenHarmony(简称“OpenHarmony”)三方库,是经过验证可在OpenHarmony系统上可重复使用的软件组件,可帮助开发者快速开发OpenHarmony应用。如果是发布到开源社区,称为开源三方库,开发者可以通过访问开源社区获取。接下来我们来了解crypto-js开源三方库。crypto-js是一个加密算法类库,可以非常方便地在前端进行其所支持的加解密操作。目前crypto-js已支持的算法有:MD5、SHA-1、SHA-256、HMAC、HMAC-MD5、HMAC-SHA1、HMAC-SHA256、PBKDF2、AES、RC4、DES等。

特点

• 安全性和可靠性:crypto-js 实现了经过广泛测试和审查的加密算法,旨在提供安全可靠的加密功能。它采用密码学的最佳实践,并致力于保护数据的安全性和完整性。

• 易于使用的 API:crypto-js 提供了简单易用的 API,使开发人员能够轻松地在 应用程序中执行加密和解密操作。它提供了直观和一致的方法和选项,使加密操作变得更加方便和灵活。

• 多种加密算法支持:crypto-js 支持多种对称加密算法(如 AES、DES)和散列函数(如 MD5、SHA1、SHA256),以及消息认证码(MAC)算法。它提供了一套完整的加密工具,满足不同安全需求。

常用加密算法的使用场景

MD5

MD5是一种广泛使用的散列函数。它被用于各种安全应用,也通常用于校验文件的完整性。但MD5不耐碰撞攻击,因此不适用于SSL证书或数字签名。

SHA-1

SHA 散列函数由美国国家安全局 (NSA) 设计。SHA-1 是现有 SHA 散列函数中最成熟的,它用于各种安全应用程序和协议。但随着新攻击的发现或改进,SHA-1 的抗攻击能力一直在减弱。

SHA-2

SHA-224、SHA-256、SHA-384,和SHA-512合称为SHA-2。SHA-256是SHA-2集合中的四个变体之一。虽然它提供了更好的安全性,但是它的应用不如SHA-1广泛。SHA-512在很大程度上与SHA-256相同,但在64位计算机上SHA-512比SHA-256更快(因为它们在内部使用64位算术);在8位,16位和32位计算机上,SHA-256比SHA-512更快。

HMAC

HMAC是一种使用加密散列函数进行消息认证的机制,可以与任何迭代密码散列函数结合使用,通常用于消息身份验证,数字签证。

PBKDF2

PBKDF2是一个用来对用户口令(password)进行加密的函数。在密码学的许多应用中,用户安全性最终取决于用户口令,由于用户口令通常不能直接用作密钥,因此需要进行一些处理。

AES

AES 密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES(Data Encryption Standard),已经被多方分析且广为全世界所使用。

RC4

RC4算法是Ron Rivest为RSA公司在1987年设计的一种流密码,作为RSA的商业机密直到1994年才被匿名公布于Internet。RC4被用于为网络浏览器和服务器间通信而制定的SSL/TLS(安全套接字协议/传输层安全协议)标准中,以及作为IEEE 801.11无线局域网标准一部分的WEP(Wired Equivalent Privacy)协议和新的WiFi受保护访问协议(WAP)中。从这些应用来看,RC4构成了当今网络通信的非常重要的部分,因此这个算法非常重要。

 

Demo效果

使用示例

接下来将通过具体实例介绍crypto-js的使用方法与个性化配置。

1. 在项目中安装 crypto-js

安装crypto-js可以全局安装,也可以在模块下安装。全局安装在根目录下执行安装指令,模块安装则在相应的模块下执行安装指令:

 

ohpm  install @ohos/crypto-js 
 

  

OpenHarmony ohpm 环境配置等更多内容,请参考如何安装 OpenHarmony ohpm 包。例如我们在模块下安装,在entry目录下执行安装指令,出现install completed则安装完成:

2.  引入依赖

使用crypto-js需要引入依赖。

 

最新版本支持
  import { CryptoJS } from '@ohos/crypto-js' 或者
  import CryptoJS from '@ohos/crypto-js'
 

  

3.使用md5算法

md5信息摘要算法(英语:md5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。

md5特点:

1.  不可逆性 --- 根据 MD5 值计算不出原始数据

2.  唯一性 --- 不同原始数据会有不同的 MD5 值

md5算法在本库的使用:

 

 //第一步在需要使用到的页面,导入CryptoJS
  import { CryptoJS } from '@ohos/crypto-js'
  //第二步在需要使用到md5的业务逻辑,调用md5算法
  var hash = CryptoJS.MD5("123456") //传参是需要加密的内容,返回值是加密后的数据
 

  

4.  使用aes算法

AES算法全称Advanced Encryption Standard,又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。AES是对称加密,所以加密解密都需要用到同一个秘钥。AES算法在本库的使用:

 

 //第一步在需要使用到的页面,导入CryptoJS
  import { CryptoJS } from '@ohos/crypto-js'
  //第二步定义加密解密需要用到的key
  var key = 'secret key 1234'
  //第三步在需要使用AES加密的业务逻辑,调用AES加密
  var encrypted = CryptoJS.AES.encrypt('hello world', key).toString()  //传参为加密内容及秘钥
  //第四步在需要把上面的加密块解密的业务逻辑,调用AES解密,注意key必须相同
  var decrypted = CryptoJS.AES.decrypt(encrypted, key) //传参为加密后的内容及秘钥
 

  

源码地址&ohpm仓地址

以上就是crypto-js的一些基本介绍,更多详情可以前往源码地址或者ohpm仓地址参考crypto-js文档。

 

参考资料

安装 OpenHarmony ohpm 包

https://gitee.com/openharmony-tpc/docs/blob/master/OpenHarmony_har_usage.md

源码地址

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

ohpm仓地址

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

标签:AES,加密,crypto,js,SHA,CryptoJS,加密算法
From: https://www.cnblogs.com/openharmony/p/17687223.html

相关文章

  • springmvc中的json数据转为字符串使用到的jar包,将servlet设置为bean对象
    2023-09-08<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.15.2</version></dependency>ServletConfigp......
  • web前端技能方法总结(css、js、jquery、html)
    CSS设置背景(background)背景颜色background-color背景图片background-image背景重复background-repeat:repeat-x/repeat-y背景位置background-position:bottom/left/top/right/center背景关联background-attachment:fixed/scroll综合写法:.tagName{background:#ffffffurl(“a......
  • js中监听到浏览器标签页的新增、切换等变化
    在JavaScript中,可以使用visibilitychange事件来监听浏览器标签页的新增、切换等变化。这个事件会在页面的可见性状态发生变化时触发。下面是一个示例代码,展示如何使用visibilitychange事件来监听标签页的变化:document.addEventListener('visibilitychange',function(){......
  • 谈谈JSF业务线程池的大小配置
    1.简介JSF业务线程池使用JDK的线程池技术,缺省情况下采用Cached模式(核心线程数20,最大线程数200)。此外,还提供了Fixed固定线程大小的模式,两种模式均可设置请求队列大小。本文旨在通过一个简化场景(“单服务应用”)下的负载测试,为“JSF业务线程池大小配置”提供基准测试结果,并形成一些......
  • JS基本遍历方法
    for这大概是应用最广的循环语句了吧,简单实用,且大多数时候性能还是在线的,唯一的缺点大概就是太普通,没有特色,导致很多人现在不愿用它。constarray=[4,7,9,2,6];for(constindex=0;index<array.length;index++){constelement=array[index];console.log......
  • 那些大家都知道的js加密技术
    引言:随着现代网络应用的迅速发展,数据安全成为了一项至关重要的任务。JavaScript作为前端开发的主要语言之一,在保护用户数据和隐私方面扮演了重要的角色。本文将介绍JavaScript中常用的加密和解密技术栈,探讨它们的优缺点,并提供代码案例来帮助您更好地理解这些技术。一些常用的基础......
  • VueJS 处理表单组件上 api 调用的错误
    问题出在可组合项中对errors的处理上。在register函数中,你将errors重新赋值为空对象{},而应该将其赋值给errors.value来保持响应式。修改useAuth可组合项的代码如下:exportdefaultfunctionuseAuth(){leterrors=ref({});constregister=(request)=>{errors.val......
  • 【JS】实现 MaxQueue
    classMaxQueue{constructor(){this.queue=[]this.max=[]}enqueue(el){this.queue.push(el)while(this.max.length&&this.max[this.max.length-1]<el){this.max.pop()}......
  • CommonJS 和 ECMAScript 转换
    CommonJS和ECMAScript前言:在完成一个加密工具的过程中,本来只想使用commonjs语法完成该功能,但是在使用chalk的时候发现chalk是通过ES模块导出的,无法使用require引入(当然也有一些方法,可以使用bable去转化,但是本人想实现使用es语法,目前还没写多少内容,以下是转化......
  • 初学者学习Auto.js的示例和教程资源
    1.Auto.js官方文档:您可以前往Auto.js官方网站(https://hyb1996.github.io/AutoJs-Docs/#/)查看官方文档,其中包含了基本使用方法、API参考和示例代码等。2.Auto.js示例脚本:Auto.js官方文档中提供了一些示例脚本,您可以下载并运行这些脚本,以了解其基本用法和功能。3.Auto.js论坛:Auto.......