百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

JS 和 JAVA 实现 aes(AESCBCPKCS5Padding) 加密

toyiye 2024-06-06 22:12 10 浏览 0 评论

AES 简介

密码学中的高级加密标准(Advanced Encryption Standard,AES),又称高级加密标准Rijndael加密法,

是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界

所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院 (NIST)于2001年11月26日

发布于FIPS PUB197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密

中最流行的算法之一。该算法为比利时密码学家Joan Daemen和VincentRijmen所设计,结合两位作者的名

字,以Rijndael之命名之,投稿高级加密标准的甄选流程。(Rijdael的发音近于 “Rhinedoll”。)

AES加密模式和填充方式(其实还有还几种填充方式没写上,开始时候也在这里绕了一下)

算法/模式/填充 —————-16字节加密后数据长度 ——不满16字节加密后长度

AES/CBC/NoPadding ——-16 ——————————-不支持

AES/CBC/PKCS5Padding ——-32 ——————————-16

AES/CBC/ISO10126Padding ——-32 ——————————-16

AES/CFB/NoPadding ——-16 ——————————-原始数据长度

AES/CFB/PKCS5Padding ——- 32 ——————————-16

AES/CFB/ISO10126Padding ——-32 ——————————-16

AES/ECB/NoPadding ——-16 ——————————-不支持

AES/ECB/PKCS5Padding ——-32 ——————————-16

AES/ECB/ISO10126Padding ——-32 ——————————- 16

AES/OFB/NoPadding ——-16 ——————————-原始数据长度

AES/OFB/PKCS5Padding ——- 32 ——————————-16

AES/OFB/ISO10126Padding ——- 32 ——————————-16

AES/PCBC/NoPadding ——-16 ——————————-不支持

AES/PCBC/PKCS5Padding ——-32 ——————————- 16

AES/PCBC/ISO10126Padding ——-32 ——————————-16

更多关于加密模式内容:http://blog.sina.com.cn/s/blog_679daa6b0100zmpp.html

Javascript端代码:

<script src="aes.js"></script>

<script src="pad-zeropadding.js"></script>

<script>

var data = "Test String";

var key = CryptoJS.enc.Latin1.parse('1234567812345678');

var iv = CryptoJS.enc.Latin1.parse('1234567812345678');

//加密

var encrypted = CryptoJS.AES.encrypt(data,key,{iv:iv,mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.ZeroPadding});

document.write(encrypted.ciphertext);

document.write('<br/>');

document.write(encrypted.key);

document.write('<br/>');

document.write(encrypted.iv);

document.write('<br/>');

document.write(encrypted.salt);

document.write('<br/>');

document.write(encrypted);

document.write('<br/>');

//解密

var decrypted = CryptoJS.AES.decrypt(encrypted,key,{iv:iv,padding:CryptoJS.pad.ZeroPadding});

console.log(decrypted.toString(CryptoJS.enc.Utf8));

</script>

第二种:

//AES-128-CBC加密模式,key需要为16位,key和iv可以一样

function encrypt(data) {

var key = CryptoJS.enc.Latin1.parse('dufy20170329java');

var iv = CryptoJS.enc.Latin1.parse('dufy20170329java');

return CryptoJS.AES.encrypt(data, key, {iv:iv,mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.ZeroPadding}).toString();

}

Vue中 使用 CryptoJS 完成加密

// 引入aes加密

import CryptoJS from 'crypto-js'

Vue.prototype.$crypto = CryptoJS;

// Encrypt CryptoJS.pad.Pkcs7

var key = this.$crypto.enc.Utf8.parse('xxxxx'); // 与后台统一

var iv = this.$crypto.enc.Utf8.parse('16-Bytes--String'); // 与后台统一

var ciphertext = this.$crypto.AES.encrypt(data, key,{

iv:iv,

mode:this.$crypto.mode.CBC, // 根据上面得对应模式修改

padding:this.$crypto.pad.Pkcs7 // 根据上面对应模式修改

}).toString();

相关推荐

Python GUI-长链转短链(长链接转化成短链接java)

当我们要分享某一个链接给别人,或是要把某个链接放入帖子中时,如果链接太长,则会占用大量空间,而且很不美观。这时候,我们可以结束长链转短链工具进行转换。当然可以直接搜索在线的网站进行转换,但我们可以借此...

Python 的hash 函数(python的hash函数)

今天在看python的hash函数源码的时候,发现针对不同的数据类型python实现了不同的hash函数,今天简单介绍源码中提到的hash函数。(https://github.com/pyth...

8款Python GUI开源框架,谁才是你的菜?

作为Python开发者,你迟早都会用到图形用户界面来开发应用。本文千锋武汉Python培训小编将推荐一些PythonGUI框架,希望对你有所帮助。1、Python的UI开发工具包Kivy...

python适合开发桌面软件吗?(python可不可以开发桌面应用软件)

其实Python/Java/PHP都不适合用来做桌面开发,Java还是有几个比较成熟的产品的,比如大名鼎鼎的Java集成开发环境IntelliJIDEA、Eclipse就是用Java开发的,不过PH...

CryptoChat:一款功能强大的纯Python消息加密安全传输工具

关于CryptoChatCryptoChat是一款功能强大的纯Python消息加密安全传输工具,该工具专为安全研究专家、渗透测试人员和红蓝队专家设计,该工具可以完全保证数据传输中的隐私安全。该工具建立...

为什么都说Python简单,但我觉得难?

Python普遍被大家认为是编程语言中比较简单的一种,但有一位电子信息的学生说自己已经学了C语言,但仍然觉得Python挺难的,感觉有很多疑问,像迭代器、装饰器什么的……所以他提出疑问:Python真...

蓝牙电话-关联FreeSwitch中继SIP账号通过Rest接口

蓝牙电话-关联FreeSwitch中继SIP账号通过Rest接口前言上一篇章《蓝牙电话-与FreeSwitch服务器和UA坐席的通话.docx》中,我们使用开源的B2B-UA当中经典的FreeSWIT...

技术分享|Sip与WebRTC互通-SRProxy开源库讲解

SRProxy介绍目前WebRTC协议跟SIP协议互通场景主要运用在企业呼叫中心、企业内部通信、电话会议(PSTN)、智能门禁等场景,要想让WebRTC与SIP互通,要解决两个层面的...

全网第N篇SIP协议之GB28181注册 JAVA版本

鉴于网上大部分关于SIP注册服务器编写都是C/C++/python,故开此贴,JAVA实现也贴出分享GB28181定义了了基于SIP架构的视频监控互联规范,而对于多数私有协议实现的监控系统...

「linux专栏」top命令用法详解,再也不怕看不懂top了

在linux系统中,我们经常使用到的一个命令就是top,它主要是用来显示系统运行中所有的进程和进程对应资源的使用等信息,所有的用户都可以使用top命令。top命令内容量丰富,可令使用者头疼的是无法全部...

Linux 中借助 perf 对 php 程序模拟CPU高的案例分析

导语本文是一篇Linux借助工具分析CPU高的优化案例,没有任何干货内容,很详细的展示了优化CPU高的具体步骤,非常适合初中级读者阅读!...

centos漏洞处理方法(centos podman)

centos服务器最近有诸多漏洞,修复命令及对应的漏洞整理后,分享给大家RHSA-2020:1176-低危:avahi安全更新yumupdateavahi-libsRHSA-2017:326...

Linux上的free命令详解(Buffer和Cache)

解释一下Linux上free命令的输出。下面是free的运行结果,一共有4行。为了方便说明,我加上了列号。这样可以把free的输出看成一个二维数组FO(FreeOutput)。例如:FO[2][1]...

linux 命令行之你真的会用吗?--free 基本用法篇

free命令行统计内存使用率及swap交换分区的使用率数据。是由sourceforge负责维护的,在ubuntu上其包名为procps,这个源码包中,除了free还有ps,top,vmstat,ki...

kong api gateway 初体验(konga github)

kongapigateway初体验(firstsight?)。Kong是一个可扩展的开源API层(也称为API网关或API中间件)。Kong运行在任何RESTfulAPI的前面,并通过插件...

取消回复欢迎 发表评论:

请填写验证码