国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 阜宁县| 柏乡县| 七台河市| 白城市| 灌阳县| 仙桃市| 乌鲁木齐市| 通州市| 绥滨县| 五大连池市| 盐边县| 保山市| 湾仔区| 搜索| 贵州省| 驻马店市| 陵川县| 松潘县| 黎城县| 九江市| 阜康市| 顺昌县| 芜湖县| 邵阳县| 罗源县| 永仁县| 社旗县| 富蕴县| 峡江县| 随州市| 沂南县| 横峰县| 宜春市| 临汾市| 通江县| 偏关县| 彰武县| 方城县| 扎囊县| 凭祥市| 新化县|