国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

Js通過(guò)AES加密后PHP用Openssl解密的方法

2019-11-19 11:11:39
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

前言

最近遇到的幾個(gè)網(wǎng)站在提交密碼時(shí)提交的已經(jīng)是密文,也就是說(shuō)在網(wǎng)絡(luò)上傳輸?shù)拿艽a是密文,這樣提升了密碼在網(wǎng)絡(luò)傳輸中的安全性。

后端語(yǔ)言加解密已經(jīng)有很成熟的方案了,前端的話Google之前出過(guò)一個(gè)crypto-js,為瀏覽器的js提供了加解密方案。今天一起來(lái)了解一下基于AES的前后端加解密流程。

Javascript

1、安裝npm包 npm install crypto-js

2、加密代碼

const CryptoJS = require("crypto-js");const key = CryptoJS.enc.Latin1.parse('1234567812345678');const iv = CryptoJS.enc.Latin1.parse('1234567812345678');const encoded = CryptoJS.AES.encrypt('hahaha', key, { iv: iv, mode: CryptoJS.mode.CBC, adding: CryptoJS.pad.ZeroPadding}).toString()console.log('encoded', encoded)

3、解密代碼

const key = CryptoJS.enc.Latin1.parse('123456781234567812345678');const iv = CryptoJS.enc.Latin1.parse('1234567812345678');const decoded = CryptoJS.AES.decrypt(encoded, key, { iv: iv, mode: CryptoJS.mode.CBC, adding: CryptoJS.pad.ZeroPadding}).toString(CryptoJS.enc.Utf8)console.log('decoded', decoded);

4、輸出如下

encoded 6bcgYd4f4ZgNOQH/3tqMpg==
decoded hahaha

PHP

直接使用openssl解密即可,代碼如下:

$encoded = '6bcgYd4f4ZgNOQH/3tqMpg==';$key = '123456781234567812345678';$iv = '1234567812345678';var_dump(openssl_decrypt($encoded, 'AES-192-CBC', $key, 0,$iv));

輸出結(jié)果:

string(6) "hahaha"

注意事項(xiàng)

1、AES加密位數(shù)跟密鑰key有關(guān), 以下是密鑰位數(shù)和加密對(duì)應(yīng)關(guān)系

  • 16 => AES-128
  • 24 => AES-192
  • 32 => AES-256

2、iv是初始化向量. 超過(guò)16字節(jié)或者不足16字節(jié)都會(huì)被補(bǔ)足16字節(jié)或者截?cái)嗟?6字節(jié)。由于AES是塊加密,銘文被分割成固定長(zhǎng)度的塊(一般是16字節(jié)長(zhǎng)度),所以iv也是16字節(jié)。

3、CBC是加密模式

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)武林網(wǎng)的支持。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 潍坊市| 日照市| 晋州市| 栾城县| 融水| 武宁县| 宁河县| 桓台县| 开远市| 普兰店市| 伽师县| 四平市| 大城县| 林芝县| 新丰县| 利川市| 宁化县| 松桃| 洛阳市| 南和县| 濮阳市| 和静县| 东乌珠穆沁旗| 枣强县| 高阳县| 二手房| 嘉善县| 隆回县| 辽宁省| 南江县| 洛扎县| 喜德县| 平乡县| 绥德县| 葫芦岛市| 手机| 静安区| 屯昌县| 白朗县| 安西县| 哈尔滨市|