当前位置: 首页 > wzjs >正文

软件技术ui设计专业怎么样荆州seo推广

软件技术ui设计专业怎么样,荆州seo推广,中国建设银行深圳分行网站,游戏网站建设需要多少钱目录 目标 概述 DES AES 实战 JS实现DES JS实现AES 目标 了解AES和DES的特点并用JS实现。 概述 DES 翻译过来叫数据加密标准。它有5种加密模式(CTR、OFB、CFB、CBC、ECB),在JS中,不同加密模式语法结构几乎一致&#xff0c…

目录

目标

概述

DES

AES

实战

JS实现DES

JS实现AES


目标

        了解AES和DES的特点并用JS实现。


概述

DES

        翻译过来叫数据加密标准。它有5种加密模式(CTR、OFB、CFB、CBC、ECB),在JS中,不同加密模式语法结构几乎一致,主要区别就是mode设置和是否需要iv(初始化向量,可以理解为第二个密钥),其中ECB不需要iv,其他模式都需要。它具有以下特点:

  • 密钥长度:56位(实际上是64位,但每8位中有1位用于奇偶校验)。
  • 分组加密:64位分组。
  • 安全性较低,现在已不推荐用于敏感信息传输。

AES

        翻译过来叫高级加密标准。它比DES更先进,更安全。它也有五种加密模式,模式名称和DES的5中模式名称一样,但是内部的加密逻辑不同。同样地,除了ECB外,其他的四种加密模式都要iv(初始化向量)。它有如下特点:

  • 对称加密:加密和解密使用同一个密钥。
  • 分组加密:每次加密固定大小的块(128位=16字节)。
  • 密钥长度可选:128位(16字节)、192位(24字节)、256位(32字节)。

实战

JS实现DES

// 引用 crypto-js 加密模块 
var cryptoJS = require('crypto-js')/*** 加密方法* @returns {string}*/
function desEncrypt(desKey, desIv, data) {var key = cryptoJS.enc.Utf8.parse(desKey), iv = cryptoJS.enc.Utf8.parse(desIv),srcs = cryptoJS.enc.Utf8.parse(data), encrypted = cryptoJS.DES.encrypt(srcs, key, {//iv: iv, mode: cryptoJS.mode.CBC, //明文长度不是分组长度(8 字节)的整数倍时,需要补齐。补充模式为Pkcs7padding: cryptoJS.pad.Pkcs7});return encrypted.toString();
}/*** 解密方法* @returns {string}*/
function desDecrypt(desKey, desIv, data) {var key = cryptoJS.enc.Utf8.parse(desKey), iv = cryptoJS.enc.Utf8.parse(desIv),decrypted = cryptoJS.DES.decrypt(data, key, {iv: iv, mode: cryptoJS.mode.CBC, //明文长度不是分组长度(8 字节)的整数倍时,需要补齐。补充模式为Pkcs7padding: cryptoJS.pad.Pkcs7});return decrypted.toString(cryptoJS.enc.Utf8);
}//明文
var data = "Hello World!"
//密钥长度超过了8位,则后面的字符串会被自动裁剪。
//所以我们看到密钥是12345678和1234567890加密后的密文是一样的。
var desKey = "12345678"
// 初始向量
var desIv = "0123456789ABCDEF"
//加密
var encryptedData = desEncrypt(desKey, desIv, data)
//解密
var decryptedData = desDecrypt(desKey, desIv, encryptedData)console.log("加密字符串: ", encryptedData)
console.log("解密字符串: ", decryptedData)

JS实现AES

// 引用 crypto-js 加密模块 
var cryptoJS = require('crypto-js')/*** 加密方法* @returns {string}*/
function aesEncrypt(aesKey, aesIv, data) {var key = cryptoJS.enc.Utf8.parse(aesKey), iv = cryptoJS.enc.Utf8.parse(aesIv),srcs = cryptoJS.enc.Utf8.parse(data), encrypted = cryptoJS.AES.encrypt(srcs, key, {//iv: iv, mode: cryptoJS.mode.CBC, //明文长度不是分组长度(8 字节)的整数倍时,需要补齐。补充模式为Pkcs7padding: cryptoJS.pad.Pkcs7});return encrypted.toString();
}/*** 解密方法* @returns {string}*/
function aesDecrypt(aesKey, aesIv, data) {var key = cryptoJS.enc.Utf8.parse(aesKey), iv = cryptoJS.enc.Utf8.parse(aesIv),aecrypted = cryptoJS.AES.decrypt(data, key, {iv: iv, mode: cryptoJS.mode.CBC, //明文长度不是分组长度(8 字节)的整数倍时,需要补齐。补充模式为Pkcs7padding: cryptoJS.pad.Pkcs7});return aecrypted.toString(cryptoJS.enc.Utf8);
}//明文
var data = "Hello World!"
//密钥
var aesKey = "1234123412341234"
// 初始向量
var aesIv = "0123456789ABCDEF"
//加密
var encryptedData = aesEncrypt(aesKey, aesIv, data)
//解密
var decryptedData = aesDecrypt(aesKey, aesIv, encryptedData)console.log("加密字符串: ", encryptedData)
console.log("解密字符串: ", decryptedData)
http://www.dtcms.com/wzjs/316232.html

相关文章:

  • 泸州网站建设青岛百度seo代理
  • 如何将百度收录网站seo概念
  • 外贸网站建设如何做呢营销策划方案案例
  • 网站被收录bt蚂蚁磁力
  • 个人网站可以如果做淘宝客搜索引擎优化方法与技巧
  • 织梦网站模板本地安装教程百度优化推广
  • wordpress搜索页面不同关键词排名优化公司地址
  • 做网站哪家公司如何开通自己的网站
  • 设计网站需要的知识沈阳seo技术
  • 如何建设个人网站内容营销平台有哪些
  • 教育网站怎么做弹窗的南昌百度推广联系方式
  • 提供网站建设空间百度一下官网页
  • 万虹点读机如何做系统下载网站seo顾问培训
  • 衡水wap网站建设费用网站优化包括哪些
  • 专做影视评论的网站杭州百度推广优化排名
  • 手机网站开发 速度超级推荐的关键词怎么优化
  • wordpress网站建设中外贸推广是做什么的
  • 自制网站导航图怎么做营销型网站优化
  • 先备案还是先做网站seo是什么
  • 博山政府网站建设托管公关公司
  • 有没有免费学编程的网站郑州网站关键词排名技术代理
  • 专业企业网站建设多少钱广州短视频代运营
  • 附近网站建设公司小程序怎么开发
  • 怎样登入网站后台淘宝直通车推广怎么收费
  • 在哪里做网站好交换链接适用于哪些网站
  • 新公司在哪做网站广告优化师培训
  • 阜阳哪里有做网站的seo整站优化服务
  • 重庆网站开发公司seo和sem的概念
  • 网站怎么发布到iis上关键字优化用什么系统
  • 广州天河区房价公司网络优化方案