【开源三方库】crypto-js加密算法库的使用方法
特点
• 安全性和可靠性: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仓地址
【开源三方库】crypto-js加密算法库的使用方法的更多相关文章
- 【全网首发】鸿蒙开源三方组件--强大的弹窗库XPopup组件
目录: 1.介绍 2.效果一览 3.依赖 4.如何使用 5.下载链接 6.<鸿蒙开源三方组件>文章合集 1. 介绍 XPopup是一个弹窗库,可能是Harmony平台最好的弹窗库.它从 ...
- Node.js Crypto 加密算法库
Crypto库是随Nodejs内核一起打包发布的,主要提供了加密.解密.签名.验证等功能.Crypto利用OpenSSL库来实现它的加密技术,它提供OpenSSL中的一系列哈希方法,包括hmac.ci ...
- JS加密库Crypto-JS SEA加密
http://www.seacha.com/tools/aes.html 在该网站测试 CryptoJS有很多加密方式网上查阅后有 CryptoJS (crypto.js) 为 JavaScript ...
- JS加密库
作者声明:本博客中所写的文章,都是博主自学过程的笔记,参考了很多的学习资料,学习资料和笔记会注明出处,所有的内容都以交流学习为主.有不正确的地方,欢迎批评指正 本文主要是参考aicoder马伦老师的博 ...
- 手绘风格的 JS 图表库:Chart.xkcd
本文作者:HelloGitHub-kalifun 图表库千万个今天 HelloGitHub 给大家推荐个很有"特色"的图表库:一个手绘风格的 JS 图表库 -- Chart.xkc ...
- Python利用PyExecJS库执行JS函数
在Web渗透流程的暴力登录场景和爬虫抓取场景中,经常会遇到一些登录表单用DES之类的加密方式来加密参数,也就是说,你不搞定这些前端加密,你的编写的脚本是不可能Login成功的.针对这个问题,现在有 ...
- Node.js 基础库
全局对象 Node.js 中的全局对象是 global,所有全局变量(除了 global 本身以外)都是 global对象的属性. 我们在 Node.js 中能够直接访问到对象通常都是 global ...
- Gremlins.js – 模拟用户随机操作的 JS 测试库
Gremlins.js 是基于 JavaScript 编写的 Monkey 测试库,支持 Node.js 平台和浏览器中使用.Gremlins.js 随机模拟用户操作:单击窗口中的任意位置,在表格中输 ...
- 运行js提示库没有注册错误8002801d的解决办法
运行js提示库没有注册错误8002801d的解决办法这个错误主要是因为服务器上的windows scripts版本较低,请按下面的链接下载较高版本windows scripts 5.6并在服务器上进行 ...
- App.js – 用于移动 Web App 开发的 JS 界面库
App.js 是一个轻量级的 JavaScript UI 库,用于创建像本地应用程序的移动 Web 应用而不牺牲性能和体验.它是跨平台的,特定的UI设计,配置类似原生的过渡效果.App.js 的目的是 ...
随机推荐
- linux系统信息命令笔记
1,时间和日期 2,磁盘信息 4,进程概念介绍 4.1,ps 基本命令使用 ps aux 显示内容太多了.一般用ps a 或 ps au 4.2, top命令的基本使用 top 可以动态的显示运行中的 ...
- 探索浏览器录屏Web API 接口的应用前景与限制
一.浏览器录屏Web API 接口的优点: 简化录屏流程:浏览器录屏Web API 接口可以直接在网页中调用,无需安装额外的插件或软件,简化了录屏的流程. 实时录制与传输:Web API 接口可以实时 ...
- .NET应用国际化支持-葡萄牙语下如何不区分重音的模糊查询
葡萄牙语,作为一种罗曼语族的语言,其正字法(orthography)并不使用音标系统来标记发音,而是有一套特定的拼写规则.然而,葡萄牙语中确实使用重音符号(acentos)来标记某些元音的重音(str ...
- 十五: InnoDB的存储结构
InnoDB的存储结构 1.数据库的存储结构:页 索引结构给我们提供了高效的索引方式,不过索引|信息以及数据记录都是保存在文件上的,确切说是存储在页结构中.另一方面,索引是在存储引擎中实现的,MySQ ...
- ansible-vault 教程
基本使用 在编写playbook时,可能会涉及到一些敏感的数据,比如密码,当这些敏感数据以明文的方式存储在playbook中时,可能是不能被接受的,那么我们该怎么办呢?ansible官方已经考虑到了这 ...
- .Net Core中使用DiagnosticSource进行日志记录
System.Diagnostics.DiagnosticSource 是一个可以对代码进行检测的模块,可以丰富地记录程序中地日志,包括可序列化的类型(例如 HttpResponseMessage 或 ...
- 阿里二面:如何定位&避免死锁?连着两个面试问到了!
在面试过程中,死锁是必问的知识点,当然死锁也是我们日常开发中也会遇到的一个问题,同时一些业务场景例如库存扣减,银行转账等都需要去考虑如何避免死锁,一旦线上发生了死锁,那可能年终不保.....下面我们就 ...
- JB一键重置
版本名 版本号 更新时间 更新内容 更新地址 v1.1 2 2020-12-26 在线下载失败的请访问shop.stars-one.site,使用软件找回手动下载\n1.修复bug\n2.修复在线更新 ...
- 【Django】HTML如何显示富文本内容
一.背景 我采用的前端样式是 LayUI,通过它的富文本编辑器保存内容到数据库后,遇到了一个回显到页面的问题 二.方案 在不考虑使用 Vue 的情况下,有一种简单的方式 <div id=&quo ...
- Welcome to YARP - 2.1配置功能 - 配置文件
目录 Welcome to YARP - 1.认识YARP并搭建反向代理服务 Welcome to YARP - 2.配置功能 2.1 - 配置文件(Configuration Files) 2.2 ...