关于aes加密

摘要:
aes加密有几种模式:CBC、aes-128bit、Pkcs7补码(背景可能是PKCS5Padding,这是相同的)。Android和ios的密钥对长度不是必需的,但前端web的密钥和偏移量必须为16位,以匹配java背景。前端代码如下follows://aes加密函数encrypt(word){varkey=CryptoJS.enc.Utf8.parse(“12345678900000000”)

aes加密有几种模式:CBC,AES-128bit, Pkcs7补码方式(后台有可能是PKCS5Padding,是一样的),安卓和ios的key密钥对长度没有要求,但是前端web的密钥和偏移量必须是16位的,才能与java后台对上,前端代码如下

//aes加密
function encrypt(word) {
    var key = CryptoJS.enc.Utf8.parse("1234567890000000"); //16位
    var iv = CryptoJS.enc.Utf8.parse("1234567890000000");
    var encrypted = '';
    if (typeof(word) == 'string') {
        var srcs = CryptoJS.enc.Utf8.parse(word);
        encrypted = CryptoJS.AES.encrypt(srcs, key, {
            iv: iv,
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7
        });
    } else if (typeof(word) == 'object') {//对象格式的转成json字符串
        data = JSON.stringify(word);
        var srcs = CryptoJS.enc.Utf8.parse(data);
        encrypted = CryptoJS.AES.encrypt(srcs, key, {
            iv: iv,
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7
        })
    }
    return encrypted.ciphertext.toString();
}
// aes解密
function decrypt(word) {
    var key = CryptoJS.enc.Utf8.parse("1234567890000000"); 
    var iv = CryptoJS.enc.Utf8.parse("1234567890000000");
    var encryptedHexStr = CryptoJS.enc.Hex.parse(word);
    var srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
    var decrypt = CryptoJS.AES.decrypt(srcs, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    });
    var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
    return decryptedStr.toString();
}

需要下载CryptoJS的包,下载:https://code.google.com/archive/p/crypto-js/downloads

免责声明:文章转载自《关于aes加密》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Linux 安装 Oracle 客户端、 sqlldr 和 sqluldr2如何让AutoCAD自动加载Arx,比如ArxDbg.arx下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

JS 中 JSON 对象与字符串之间的相互转换

在开发的过程中,如果对于少量参数的前后台传递,可以直接采用ajax的data函数,按json格式传递,后台Request即可,但有的时候,需要传递多个参数,这样后台 接受的时候Request多个很麻烦,此时要按照类的格式 或 集合的形式进行传递。 1、传递单一对象Json 例如:前台按类的格式传递JSON对象: var jsonUser = "{"User...

HTML5 Canvas 获取网页的像素值。

我之前在网上看过一个插件叫做出JScolor   颜色拾取器  说白了就是通过1*1PX的DOM设置颜色值通过JS来获取当前鼠标点击位置DOM的颜色值。 自从HTML5 画布出来之后。就有更好的方法来获取了,比方郭阿里巴巴ICON矢量库 用的SVG和渐变来进行绘制: 我昨天用Canvas来绘制了一下。由于Canvas有现成的方法getImageDat...

js传递数据一些方式

1.用Image对象的src属性 var img = new Image(); img.src = "http://www.xxx.con/?data1=1"; 创建Image对象,通过其src属性可以向xxx地址传递数据,后台php可以通过GET方法获取src属性中“?”以后的数据。 2.script标签的src属性 var sc = document....

layui上传文件前加入确认提示

//上传文件 upload: function() { layui.use('upload', function() { var upload =layui.upload; //执行实例 var uploadInst =upload.rende...

MongoDB基础入门003--使用官方驱动操作mongo,C#

本篇先简单介绍一下,使用官方驱动来操作MongoDB。至于MongoDB原生的增删改查语句,且等以后再慢慢学习。 一、操作MongoDB的驱动主要有两个   1.官方驱动:https://github.com/mongodb/mongo-csharp-driver/downloads,更新的还是比较及时的,目前已经支持大部门linq语法。   2.samu...

JS DOM元素

// 为element增加一个样式名为newClassName的新样式 functionaddClass(element, newClassName) { var value =element.className; element.className = value + " " +newClassName; } var bo...