前言

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使用(微信小程序加密解密)相关推荐

  1. 菜市场小程序推荐服务器,极力推荐的3款生鲜微信小程序,总有一个能用上!...

    下班回家晚?不想去菜市场买菜?还是去菜市场想买的菜都卖光了?这些问题都不大,今天全网小编给大家极力推荐的3款生鲜微信小程序,总有一个能用上! 随着人们生活水平的普遍提高,海鲜乘客平常百姓家餐桌上的常见 ...

  2. 微信停止为苹果服务器,苹果用户注意!iOS成微信封号重灾区 赶快停止使用你的双客户端...

    相信不少人手里都有两个微信,一个用来工作一个用来平时和朋友联系,对于双卡双待的用户来说,会选择可以双开的客户端,在一台手机上使用两个微信.不过最近微信官方正在全面封杀这种"第三方" ...

  3. 微信停止为苹果服务器,在苹果开发者政策限制下微信终于宣布将在近期为iOS版微信增加暗黑模式-...

    目前许多应用程序已经在谷歌.苹果和微软的号召下增加暗黑模式,让用户在夜间使用应用时视觉体验会更好些. 不过也有些头铁的应用程序比如微信始终不愿意增加暗黑模式,还美名其曰的表示为用户考虑希望晚上早点休息 ...

  4. 微信消息能在服务器上彻底清除,快速彻底删除微信消息的方法如此简单 很多人都用错了方法!...

    原标题:快速彻底删除微信消息的方法如此简单 很多人都用错了方法! 我们每天都要用微信接收消息,不管是群里发送的还是个人的回复的,大量的信息接踵而至,使得微信内的消息过多致使微信内存不够用,出现微信功能 ...

  5. 红米3s微信无法连接到服务器,红米手机怎么更新不了微信8.0

    很多红米手机用户在看到微信8.0安卓版正式上线的时候,发现自己的手机却无法适配更新,那么为什么会出现这样的问题呢?相信还有很多小伙伴不清楚,对此游戏爱好者小编特地为大家准备了相关的详细内容,让我们一起 ...

  6. 工具类:登录密码的加解密(jsencrypt实现前端RSA非对称加密解密

    定义工具类:utils/jsenscrypt.js import JSEncrypt from 'jsencrypt/bin/jsencrypt.min'// 密钥对生成 http://web.cha ...

  7. 微信网页发红包服务器卡住,「」实用技巧:微信红包“发放失败,此请求可能存在风险,已被微信拦截”的解决办法...

    各位赚友在撸活动的时候,肯定曾经遇到过领取众号发来的红包时,总是因提示"发放失败,此请求可能存在风险,已被微信拦截"而领取失败的经历. 如果遇到类似情况,99%的可能是这个微信号被 ...

  8. md5可以解密吗_Python训练营作业1:加密解密

    Python训练营作业1:加密解密 import random#定义加密方式 def encrypt(keyword):"""对称加密:keyword: 明文:retur ...

  9. php可逆加密解密函数,php 好用可逆的 加密解密 函数。

    php 好用可逆的加密解密函数. function encode($content, $key = 'pass' ) { // 加密数据的函数 , 主要进行移位操作 $key = md5($key); ...

最新文章

  1. 作为一个新人,怎样学习嵌入式Linux?
  2. 【机器学习入门笔记11:numpy模块实现矩阵的增删改查】20190217
  3. python-序列、集合及字典
  4. SDNU 1429.区间k大数查询(水题)
  5. 【Spring学习】spring依赖注入用法总结
  6. XJOJ - 路径数(最短路+最短路路径数量)
  7. python测试脚本截图_selenium + python实现截图并且保存图片
  8. linux 下zip文件的压缩和解压
  9. 【数据库实验课堂】实验二 使用SQL Server管理数据表
  10. 湖北2018年GDP同比增长7.8% 进出口增速有所回升
  11. 大橡塑属于机器人板块吗_又一家制造企业逃离,在东莞怒砸10亿建总部,机器人产业也顶不住深圳的高成本了?...
  12. oracle 行列转换 pivot unpivot (本文来自官网)
  13. 软件设计师-6.结构化开发方法
  14. 谷歌的现实、摩托的无奈与联想的接盘
  15. Windows 桌面美化
  16. Python可视化基础----从0学会matplotlib折线图,条形图,散点图
  17. 如何安排自己大学阶段的学习才能成为一名优秀的 Quant?
  18. android屏幕分享软件,火萤Up - 视频分享
  19. Python 爬虫 m3u8的下载及AES解密
  20. VBScript脚本运用(脚本程序与宿主程序的交互)

热门文章

  1. 如何用Qt抠一个圆形头像出来
  2. 计算机视觉技术英语论文,【毕业论文】外文翻译--计算机视觉技术在工业中的应用.doc...
  3. buck-boost电路计算
  4. 博士延毕 南大计算机,南京大学延毕博士被“赶”往本科生宿舍是真的吗?校方对此怎么回应?...
  5. MSP430学习笔记-定时器A
  6. java抽象类案例(有注释)
  7. 西游记中观世音菩萨的三个箍
  8. ddr2是几代内存_DDR1 DDR2 DDR3内存条有什么区别?怎么区分?
  9. java mht 转换 html_Word单网页mht文件,汉字被html转义解决办法
  10. 鼠标点击控制div层展开收缩