JS中常見編碼及加密方式解析
base64
#特征:結(jié)尾可能有"=="號 #編碼 # 想將字符串轉(zhuǎn)編碼成base64,要先將字符串轉(zhuǎn)換成二進制數(shù)據(jù) url = "https://www.cnblogs.com/songzhixue/" bytes_url = url.encode("utf-8") str_url = base64.b64encode(bytes_url) # 被編碼的參數(shù)必須是二進制數(shù)據(jù) print(str_url) b'aHR0cHM6Ly93d3cuY25ibG9ncy5jb20vc29uZ3poaXh1ZS8=' #解碼 # 將base64解碼成字符串 import base64 url = "aHR0cHM6Ly93d3cuY25ibG9ncy5jb20vc29uZ3poaXh1ZS8=" str_url = base64.b64decode(url).decode("utf-8") print(str_url) 'https://www.cnblogs.com/songzhixue/'
Md5
#注意:md5是哈希,不是加密 #特征:32位 #1.編碼 md = hashlib.md5() # 加密,不可逆 md.update('hello'.encode('utf-8')) # 往對象里傳數(shù)據(jù)加密 ,update只能接受bytes類型 md.update(b'hello') print(md.hexdigest()) 結(jié)果:23b431acfeb41e15d466d75de822307c #編碼加鹽 #2.加鹽 :自己添加的東西和客戶的真密碼一起加密,自己添加的東西可以是動態(tài)的 md = hashlib.md5() md.update(b'yan.com') md.update(b'hello') # 加密 print(md.hexdigest()) # 獲取密文
AES
特征:對稱加密,加密解密用的是同樣的密鑰。對稱加密是最快速、最簡單的一種加密方式
對稱加密:適合經(jīng)常發(fā)送數(shù)據(jù)的場合
非對稱加密:加密和解密用的密鑰是不同的,通常加密解密的速度比較慢,適合偶爾發(fā)送數(shù)據(jù)的場合。優(yōu)點是密鑰傳輸方便。
AES的三要素
密鑰:128、192、256
填充:
NoPadding
PKCS7Padding
ZeroPadding
AnsiX923
lso10126
lso97971
工作模式:
CBC、ECB、CTR、CFB、OFB
AES工作模式區(qū)別
工作模式:
CBC、ECB、CTR、CFB、OFB
ECB模式:
1、簡單
2、有利于計算
3、相同的明文塊經(jīng)過加密會變成相同的密文塊,因此安全性較差
CBC模式:
1、無法并行計算,性能上不如ECB
2、引入初始化向量IV,增加復(fù)雜度。
3、安全性高
AES的加密流程
1、把明文按照128bit拆分成若干個明文塊
2、按照選擇的填充模式來填充最后一個明文塊
3、每個明文塊利用AES加密器和密鑰,加密成密文塊
JS-AES、base64、SHA256、RSA等加解密庫
#利用nodejs中的crypto-js庫 var CryptoJS = require("crypto-js") CryptoJS.AES.encrypt(text,CryptoJS.enc.UTF8.parse(key),data={})
AES的特點、特征
1、有iv的是特征的是CBC工作模式
2、mode和padding標示的加密模式、填充方式
iv
:初始向量
mode
:工作模式
padding
:填充方式
Ascii碼
Ascii碼是一種特定的編碼方式,流行于歐洲國家,表達128常見的字符與操作符,表達力有限
DES
DES全稱為Data Encryption Standard,即數(shù)據(jù)加密標準,是一種使用密鑰加密的塊算法,1977年被美國聯(lián)邦政府的國家標準局確定為聯(lián)邦資料處理標準(FIPS),并授權(quán)在非密級政府通信中使用,隨后該算法在國際上廣泛流傳開來。
需要注意的是,在某些文獻中,作為算法的DES稱為數(shù)據(jù)加密算法(Data Encryption Algorithm,DEA),已與作為標準的DES區(qū)分開來。
以上就是JS中常見編碼及加密方式解析的詳細內(nèi)容,更多關(guān)于JS編碼及加密方式的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
JS實現(xiàn)可點擊展開與關(guān)閉的左側(cè)廣告代碼
這篇文章主要介紹了JS實現(xiàn)可點擊展開與關(guān)閉的左側(cè)廣告代碼,通過鼠標onClick事件調(diào)用自定義javascript函數(shù)實現(xiàn)頁面元素及樣式的顯示與隱藏效果,非常簡單實用,需要的朋友可以參考下2015-09-09詳解js模板引擎art template數(shù)組渲染的方法
art-template 是一個簡約、超快的模板引擎。這篇文章主要介紹了詳解js模板引擎art template數(shù)組渲染的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-10-10詳解CocosCreator系統(tǒng)事件是怎么產(chǎn)生及觸發(fā)的
這篇文章主要介紹了CocosCreator系統(tǒng)事件是怎么產(chǎn)生及觸發(fā)的,雖然內(nèi)容不少,但是只要一點點抽絲剝繭,具體分析其內(nèi)容,就會豁然開朗2021-04-04