crypto-js DES加密 base64 post传输
演示地址:
http://pengchenggang.gitee.io/crypto-js-des/
开源地址:
https://gitee.com/pengchenggang/crypto-js-des
需求: 前后台进行加密传输
建立个vue3的项目,进行测试crypto-js
为了演示方便 再装个 element-plus
vue create des-study
npm install crypto-js --save
npm install element-plus --save
坑点1:加密配置项 主要是和java后台配合 ECB pkcs7padding key base64 utf8 (注意这里的base64 里面是含有+号的,post传输会丢失,要再进行一次base64的单独编码)
坑点2:key就前8位 有作用,我估计可能跟iv有关系
上代码
src\App.vue
<template>
<div id="app-des">
<el-card class="box-card">
app-des-study-base64
</el-card>
<el-row :gutter="10">
<el-col :span="10">
<el-input type="textarea"
:rows="13"
placeholder="请输入内容"
v-model="leftValueBase64">
</el-input>
</el-col>
<el-col :span="4"
style="text-align:center;">
<div style="height:10px;"></div>
<el-button type="primary"
@click="encryptHandleBase64">encryptBase64</el-button>
<div style="height:10px;"></div>
<el-button type="primary"
@click="decryptHandleBase64">decryptBase64</el-button>
</el-col>
<el-col :span="10">
<el-input type="textarea"
:rows="13"
placeholder="请输入内容"
v-model="rightValueBase64">
</el-input>
</el-col>
</el-row>
<div style="height:10px;"></div>
<el-card class="box-card">
<template #header>
<div class="clearfix">
<span>interpretative statement</span>
</div>
</template>
<div>
<div>需求:用DES的方式进行加密解密,通过post进行传参</div>
<div>方案:crypto-js 进行DES加密 Pkcs7 Utf8 和密码进行加密,初始java后台用Pkcs5,后经讨论Pkcs7也是ok的。最后加一个密码</div>
</div>
</el-card>
</div>
</template>
<script>
import * as CryptoDES from './crypto-js-des'
export default {
name: 'App',
setup () {
},
data () {
return {
leftValueBase64: '',
rightValueBase64: '',
}
},
methods: {
encryptHandleBase64 () {
this.rightValueBase64 = CryptoDES.encryptByBase64DES(this.leftValueBase64)
},
decryptHandleBase64 () {
this.leftValueBase64 = CryptoDES.decryptByBase64DES(this.rightValueBase64)
}
}
}
</script>
<style>
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
color: #2c3e50;
margin-top: 10px;
}
.box-card {
margin-bottom: 10px;
}
</style>
src\crypto-js-des.js
import CryptoJS from "crypto-js";
const key = 'yourKeyStr' // The first 8 passwords are valid
//DES 加密
function encryptByDES (message) {
const keyHex = CryptoJS.enc.Utf8.parse(key);
const encrypted = CryptoJS.DES.encrypt(message, keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.ciphertext.toString(CryptoJS.enc.Base64);
}
//DES 解密
function decryptByDES (ciphertext) {
const keyHex = CryptoJS.enc.Utf8.parse(key);
const decrypted = CryptoJS.DES.decrypt({
ciphertext: CryptoJS.enc.Base64.parse(ciphertext)
}, keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return decrypted.toString(CryptoJS.enc.Utf8);
}
function strToBase64 (rawStr) {
const wordArray = CryptoJS.enc.Utf8.parse(rawStr);
const base64 = CryptoJS.enc.Base64.stringify(wordArray);
return base64
}
function base64ToStr (base64) {
const parsedWordArray = CryptoJS.enc.Base64.parse(base64);
const parsedStr = parsedWordArray.toString(CryptoJS.enc.Utf8);
return parsedStr
}
export function encryptByBase64DES (paramStr) {
const des = encryptByDES(paramStr)
return strToBase64(des)
}
export function decryptByBase64DES (base64Str) {
const str = base64ToStr(base64Str)
return decryptByDES(str)
}
crypto-js DES加密 base64 post传输的更多相关文章
- 前端使用crypto.js进行加密
前端使用crypto.js进行加密 https://www.cnblogs.com/lz2017/p/8046816.html 最近我在前端使用Cookies保存密码的时候需要前端来进行加密工作, ...
- Node.js des加密
常见的加密算法基本分为这几类,1 :线性散列算法.2:对称性加密算法.3.非对称性加密算法 (记记记) 线性散列算法(签名算法):MD5,SHA1,HMAC比如MD5:即Message-Digest ...
- DES 加密
package com.cloudunicomm.utils; import java.io.UnsupportedEncodingException; import java.security.Se ...
- JAVA实现DES加密实现详解
package util; import java.security.SecureRandom; import javax.crypto.spec.DESKeySpec; import javax.c ...
- 【Java】通过DES加密和解密工具,对字符串进行加密和解密操作
分享一个非常不错的字符串加密和解密的程序. 可以指定不同的密钥对同一字符串进行不同的加密操作,增强加密性能. Java代码如下: package com.app; import java.securi ...
- 【Java】JAVA-加密-DES加密代码详解
package util; import java.security.SecureRandom; import javax.crypto.spec.DESKeySpec; import javax.c ...
- C# 中用DES 对称Key,IV 加密,前端crypto.js 解密
1.服务器端代码 #region ========加密======== /// <summary> /// 加密 /// </summary> /// <param na ...
- js 加密 crypto-js des加密
js 加密 crypto-js https://www.npmjs.com/package/crypto-js DES 举例: js 引入: <script src=&quo ...
- JavaScript DES 加密tripledes.js:
<html> <head> <meta http-equiv="content-type" content="text/html; char ...
- AES,DES加密JS源文件及其使用方法
源文件地址:https://github.com/dididi1234/crypto 进入之后直接下载CryptoJS.js,js中直接引用,小程序也一样可以使用 具体使用方法和vue中的Crypto ...
随机推荐
- 3.5 Windows驱动开发:应用层与内核层内存映射
在上一篇博文<内核通过PEB得到进程参数>中我们通过使用KeStackAttachProcess附加进程的方式得到了该进程的PEB结构信息,本篇文章同样需要使用进程附加功能,但这次我们将实 ...
- Tire树 学习笔记
定义与基本求法 定义 又称字典树,用边表示字母,从根节点到树上某一节点路径形成一个字符串. 例如 \(charlie:\) 基本求法 廷显然的,往树中存就行了,查询也是显然的,通过一道例题来理解吧: ...
- idea 集成接口测试插件
idea api集成接口测试 日常逼逼叨 相信很多后端开发接口的小伙伴们在开发完成后也会进行简单的测试,可能会用到apifox,postman之类的测试工具,但是up近期发现了一个比较好用的idea插 ...
- ElasticSearch7.3学习(四)----结合Spring boot进行增删改查和批量(bulk)详解
1.前置 java api 文档 https://www.elastic.co/guide/en/elasticsearch/client/java-rest/7.3/java-rest-overvi ...
- 案例:使用sqlplus登录报ORA-12547错误
现象:Exadata刷机之后grid/oracle用户的环境变量是没有设置的,需要手工进行设置,设置完成后发现grid用户执行报错ORA-12547: [grid@dbm0dbadm01 ~]$ sq ...
- MySQL-面试知识点汇总
1. DQL相关 2. DDL.DML.DCL相关 3.架构相关 3.1 MySQL的复制原理以及流程 主从复制:将主数据库中的DDL和DML操作通过二进制日志(BINLOG)传输到从数据库上,然后将 ...
- Power BI 3 DAY
目录 M函数基本表达式 注释 基本表达式 M函数基本变量类型 自定义函数 调用函数列表 if表达式 数据化结构 列表结构(List) 记录结构(Record)[ ] 表格结构(Table) M函数基本 ...
- 精读JavaScript模式(九),JS类式继承与现代继承模式其二
壹 ❀ 引 二零一九年的三月二十号,我记录了精读JavaScript模式(八)这篇读书笔记,今天是二零二零年三月十五号,相差五天,其实也算时隔一年,我重新拿起了这本书.当前为什么没继续写下去呢,主要还 ...
- Rancher 2.x 安装
Rancher 是一个容器管理平台.Rancher 简化了使用 Kubernetes 的流程. 下面记录一下手动安装Rancher的步骤 1. 部署 Rancher Server 执行以下命令即可( ...
- 【OpenGL ES】Blinn改进的冯氏光照模型
1 前言 光照元素主要有环境光(ambient).漫反射光(diffuse).镜面反射光(specular),光照模型主要有冯氏模型和 Blinn 改进的冯氏模型,两者区别在与镜面反射光的计算,冯 ...