微信小程序与服务器对称加解密,细说CryptoJs使用(微信小程序加密解密)
前言
CryptoJs是google推出的一款前段解密类库.功能强大,包含很多的前段解密算法.
一.google下载地址:
二次开发版本
google原版地址
二.常用方法
Testing websockets
var key = 'BOTWAVEE';
//CBC模式加密 utf8 to base64
function encryptByDESModeCBCUtf8to64(message,key,iv) {
//var message=CryptoJS.enc.Utf8.parse(message);
var keyHex = CryptoJS.enc.Utf8.parse(key);
var ivHex = CryptoJS.enc.Utf8.parse(iv);
encrypted = CryptoJS.DES.encrypt(message, keyHex, {
iv:ivHex,
mode: CryptoJS.mode.CBC,
padding:CryptoJS.pad.Pkcs7
// padding:CryptoJS.pad.Pkcs7
}
);
//加密 成Base64
return encrypted.ciphertext.toString(CryptoJS.enc.Base64);
}
function encryptByDESModeCBCUtf8to(message,key,iv) {
var message=CryptoJS.enc.Utf8.parse(message);
var keyHex = CryptoJS.enc.Utf8.parse(key);
var ivHex = CryptoJS.enc.Utf8.parse(iv);
encrypted = CryptoJS.DES.encrypt(message, keyHex, {
iv:ivHex,
mode: CryptoJS.mode.CBC,
padding:CryptoJS.pad.Pkcs7
}
);
//加密 成Base64
return encrypted.ciphertext.toString();
// CryptoJS.enc.Base64
}
//CBC模式解密
function decryptByDESModeCBC(ciphertext2,key,iv) {
var keyHex = CryptoJS.enc.Utf8.parse(key);
var ivHex = CryptoJS.enc.Utf8.parse(iv);
// CryptoJS.enc.Base64.parse(
// direct decrypt ciphertext
var decrypted = CryptoJS.DES.decrypt({
ciphertext: CryptoJS.enc.Base64.parse(ciphertext2)
}, keyHex, {
iv:ivHex,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return decrypted.toString(CryptoJS.enc.Utf8);
}
//CBC模式解密
function decryptByDESModeCBCHex(ciphertext2,key,iv) {
var keyHex = CryptoJS.enc.Utf8.parse(key);
var ivHex = CryptoJS.enc.Utf8.parse(iv);
// direct decrypt ciphertext
var decrypted = CryptoJS.DES.decrypt({
ciphertext: CryptoJS.enc.Hex.parse(ciphertext2)
}, keyHex, {
iv:ivHex,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return decrypted.toString(CryptoJS.enc.Utf8);
}
//DES ECB模式加密
function encryptByDESModeEBC(message){
var keyHex = CryptoJS.enc.Utf8.parse(key);
var encrypted = CryptoJS.DES.encrypt(message, keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.ciphertext.toString();
}
//DES ECB模式解密
function decryptByDESModeEBC(ciphertext){
var keyHex = CryptoJS.enc.Utf8.parse(key);
var decrypted = CryptoJS.DES.decrypt({
ciphertext: CryptoJS.enc.Hex.parse(ciphertext)
}, keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
var result_value = decrypted.toString(CryptoJS.enc.Utf8);
return result_value;
}
function test0(){
var source = $("#source").val();
// CryptoJS.enc.Utf8.parse(
var cc = encryptByDESModeCBCUtf8to(source,"rrettre","234234234");
$("#target").val(cc);
}
function test(){
var source = $("#source").val();
// CryptoJS.enc.Utf8.parse(
var cc = encryptByDESModeCBCUtf8to64(source,"rrettre","234234234");
$("#target").val(cc);
}
function test1(){
var source = $("#sourceS").val();
var dd = decryptByDESModeCBC(source,"rrettre","234234234");
$("#jiemi").val(dd);
}
function test2(){
var source = $("#sourceS").val();
var dd = decryptByDESModeCBCHex(source,"rrettre","234234234");
$("#jiemi").val(dd);
}
加密前:
加密后:
密文:
解密后:
三.心得体会
1.google版本的源码,可以选择一种解密方式的文件,非常适合对解密文件大小有限制的项目.
2.二次开发版本,有全量包,跟google的使用方式相同.
四.微信小程序使用CryptoJs.
微信小程序引用类库文件,需要将对象 以module.export的形式,或其他小程序支持的形式输出,才能正常使用.
例如一下方式:
微信小程序与服务器对称加解密,细说CryptoJs使用(微信小程序加密解密)相关推荐
- 菜市场小程序推荐服务器,极力推荐的3款生鲜微信小程序,总有一个能用上!...
下班回家晚?不想去菜市场买菜?还是去菜市场想买的菜都卖光了?这些问题都不大,今天全网小编给大家极力推荐的3款生鲜微信小程序,总有一个能用上! 随着人们生活水平的普遍提高,海鲜乘客平常百姓家餐桌上的常见 ...
- 微信停止为苹果服务器,苹果用户注意!iOS成微信封号重灾区 赶快停止使用你的双客户端...
相信不少人手里都有两个微信,一个用来工作一个用来平时和朋友联系,对于双卡双待的用户来说,会选择可以双开的客户端,在一台手机上使用两个微信.不过最近微信官方正在全面封杀这种"第三方" ...
- 微信停止为苹果服务器,在苹果开发者政策限制下微信终于宣布将在近期为iOS版微信增加暗黑模式-...
目前许多应用程序已经在谷歌.苹果和微软的号召下增加暗黑模式,让用户在夜间使用应用时视觉体验会更好些. 不过也有些头铁的应用程序比如微信始终不愿意增加暗黑模式,还美名其曰的表示为用户考虑希望晚上早点休息 ...
- 微信消息能在服务器上彻底清除,快速彻底删除微信消息的方法如此简单 很多人都用错了方法!...
原标题:快速彻底删除微信消息的方法如此简单 很多人都用错了方法! 我们每天都要用微信接收消息,不管是群里发送的还是个人的回复的,大量的信息接踵而至,使得微信内的消息过多致使微信内存不够用,出现微信功能 ...
- 红米3s微信无法连接到服务器,红米手机怎么更新不了微信8.0
很多红米手机用户在看到微信8.0安卓版正式上线的时候,发现自己的手机却无法适配更新,那么为什么会出现这样的问题呢?相信还有很多小伙伴不清楚,对此游戏爱好者小编特地为大家准备了相关的详细内容,让我们一起 ...
- 工具类:登录密码的加解密(jsencrypt实现前端RSA非对称加密解密
定义工具类:utils/jsenscrypt.js import JSEncrypt from 'jsencrypt/bin/jsencrypt.min'// 密钥对生成 http://web.cha ...
- 微信网页发红包服务器卡住,「」实用技巧:微信红包“发放失败,此请求可能存在风险,已被微信拦截”的解决办法...
各位赚友在撸活动的时候,肯定曾经遇到过领取众号发来的红包时,总是因提示"发放失败,此请求可能存在风险,已被微信拦截"而领取失败的经历. 如果遇到类似情况,99%的可能是这个微信号被 ...
- md5可以解密吗_Python训练营作业1:加密解密
Python训练营作业1:加密解密 import random#定义加密方式 def encrypt(keyword):"""对称加密:keyword: 明文:retur ...
- php可逆加密解密函数,php 好用可逆的 加密解密 函数。
php 好用可逆的加密解密函数. function encode($content, $key = 'pass' ) { // 加密数据的函数 , 主要进行移位操作 $key = md5($key); ...
最新文章
- 作为一个新人,怎样学习嵌入式Linux?
- 【机器学习入门笔记11:numpy模块实现矩阵的增删改查】20190217
- python-序列、集合及字典
- SDNU 1429.区间k大数查询(水题)
- 【Spring学习】spring依赖注入用法总结
- XJOJ - 路径数(最短路+最短路路径数量)
- python测试脚本截图_selenium + python实现截图并且保存图片
- linux 下zip文件的压缩和解压
- 【数据库实验课堂】实验二 使用SQL Server管理数据表
- 湖北2018年GDP同比增长7.8% 进出口增速有所回升
- 大橡塑属于机器人板块吗_又一家制造企业逃离,在东莞怒砸10亿建总部,机器人产业也顶不住深圳的高成本了?...
- oracle 行列转换 pivot unpivot (本文来自官网)
- 软件设计师-6.结构化开发方法
- 谷歌的现实、摩托的无奈与联想的接盘
- Windows 桌面美化
- Python可视化基础----从0学会matplotlib折线图,条形图,散点图
- 如何安排自己大学阶段的学习才能成为一名优秀的 Quant?
- android屏幕分享软件,火萤Up - 视频分享
- Python 爬虫 m3u8的下载及AES解密
- VBScript脚本运用(脚本程序与宿主程序的交互)
热门文章
- 如何用Qt抠一个圆形头像出来
- 计算机视觉技术英语论文,【毕业论文】外文翻译--计算机视觉技术在工业中的应用.doc...
- buck-boost电路计算
- 博士延毕 南大计算机,南京大学延毕博士被“赶”往本科生宿舍是真的吗?校方对此怎么回应?...
- MSP430学习笔记-定时器A
- java抽象类案例(有注释)
- 西游记中观世音菩萨的三个箍
- ddr2是几代内存_DDR1 DDR2 DDR3内存条有什么区别?怎么区分?
- java mht 转换 html_Word单网页mht文件,汉字被html转义解决办法
- 鼠标点击控制div层展开收缩