演示地址:

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传输的更多相关文章

  1. 前端使用crypto.js进行加密

    前端使用crypto.js进行加密 https://www.cnblogs.com/lz2017/p/8046816.html   最近我在前端使用Cookies保存密码的时候需要前端来进行加密工作, ...

  2. Node.js des加密

    常见的加密算法基本分为这几类,1 :线性散列算法.2:对称性加密算法.3.非对称性加密算法 (记记记) 线性散列算法(签名算法):MD5,SHA1,HMAC比如MD5:即Message-Digest ...

  3. DES 加密

    package com.cloudunicomm.utils; import java.io.UnsupportedEncodingException; import java.security.Se ...

  4. JAVA实现DES加密实现详解

    package util; import java.security.SecureRandom; import javax.crypto.spec.DESKeySpec; import javax.c ...

  5. 【Java】通过DES加密和解密工具,对字符串进行加密和解密操作

    分享一个非常不错的字符串加密和解密的程序. 可以指定不同的密钥对同一字符串进行不同的加密操作,增强加密性能. Java代码如下: package com.app; import java.securi ...

  6. 【Java】JAVA-加密-DES加密代码详解

    package util; import java.security.SecureRandom; import javax.crypto.spec.DESKeySpec; import javax.c ...

  7. C# 中用DES 对称Key,IV 加密,前端crypto.js 解密

    1.服务器端代码 #region ========加密======== /// <summary> /// 加密 /// </summary> /// <param na ...

  8. js 加密 crypto-js des加密

    js 加密 crypto-js    https://www.npmjs.com/package/crypto-js   DES  举例:   js 引入:   <script src=&quo ...

  9. JavaScript DES 加密tripledes.js:

    <html> <head> <meta http-equiv="content-type" content="text/html; char ...

  10. AES,DES加密JS源文件及其使用方法

    源文件地址:https://github.com/dididi1234/crypto 进入之后直接下载CryptoJS.js,js中直接引用,小程序也一样可以使用 具体使用方法和vue中的Crypto ...

随机推荐

  1. Asp .Net Core 系列:Asp .Net Core 配置 System.Text.Json

    目录 简介 Asp .Net Core 如何配置 System.Text.Json 所有配置 全局配置 对比 Newtonsoft.Json 无实体类型下操作 Json 自定义转换器 处理 Dynam ...

  2. uni-app接口请求封装

    首先根目录下新建文件夹取名随意,这里我取名common(意为:常见的.共有的) 然后新建request.js文件,贴入以下代码 let server_url = ''; //请求根路径(服务器地址) ...

  3. .NET 云原生架构师训练营(模块二 基础巩固 REST && RESTful)--学习笔记

    2.3.1 Web API -- REST && RESTful 什么是 REST,什么是 RESTful RESTful API 设计 RESTful 成熟度模型 什么是 REST, ...

  4. 如何基于 spdlog 在编译期提供类 logrus 的日志接口

    如何基于 spdlog 在编译期提供类 logrus 的日志接口 实现见 Github,代码简单,只有一个头文件. 前提 几年前看到戈君在知乎上的一篇文章,关于打印日志的一些经验总结: 实践下来很受用 ...

  5. NC207569 牛牛爱奇数

    题目链接 题目 题目描述 在牛牛面前放着 \(n\) 个数,这些数字既有奇数也有偶数,只不过牛牛对奇数情有独钟,他特别想让这些数都变成奇数. 现在牛牛获得了一种能力,他可以执行一种操作:每次选中一个偶 ...

  6. Python中Try/Except/else/final语句

    python中的try/except/else/finally语句   与其他语言相同,在python中,try/except语句主要是用于处理程序正常执行过程中出现的一些异常情况,如语法错误(pyt ...

  7. 【Android】使用Exoplayer播放视频

    1 前言 ​ ExoPlayer 是 google 开源的应用级媒体播放器,github源码 → https://github.com/google/ExoPlayer.相较于 MediaPlayer ...

  8. SpringBoot中Redis的基础使用

    基础使用 首先引入依赖 <!-- redis依赖--> <dependency> <groupId>org.springframework.boot</gro ...

  9. python利用random模块随机生成MAC地址和IP地址

      import random   def randomMac(): macstring = "0123456789abcdef"*12 macstringlist=random. ...

  10. IDA 反汇编 explorer

    之前写过一篇关于 IDA 在无 dmp 文件下如何定位到崩溃点的文章,由于其中涉及到公司项目,就仅限自己看了 正好今天看到一篇关于火绒软件误杀 explorer 的文章,并且有相关的复现过程 文章已经 ...