利用sha256withrsa進行加密
1.npm install jsrsasign
2.加密
// 引入jsrsasign
import jsrsasign from 'jsrsasign'
// new乙個rsa物件
let rsa = new jsrsasign.rsakey()
// sha256withrsa私鑰
const k = `-----begin private key-----
-----end private key-----`
// 將私鑰 轉成16進製制
rsa = jsrsasign.keyutil.getkey(k)
// 採用sha256withrsa進行加密
const sig = new jsrsasign.kjur.crypto.signature()
// 演算法初始化
sig.init(rsa)
const newstr = '123456'
// 對123456進行加密
sig.updatestring(newstr)
// 加密後的16進製制轉成base64,這就是簽名了
const sign = jsrsasign.hextob64(sig.sign())
3.sha256withrsa驗籤
let rsa = new jsrsasign.rsakey()
// sha256withrsa公鑰
const k = `-----begin public key-----
公鑰-----end public key-----`
// 將公鑰轉正16進製制
rsa = jsrsasign.keyutil.getkey(k)
// 採用sha256withrsa進行加密
const sig = new jsrsasign.kjur.crypto.signature()
// 初始化sha256withrsa演算法的物件
sig.init(rsa)
const newstr = '123456'
// 將123456進行加密
sig.updatestring(newstr)
// 需要驗證的簽名
const sign = 'btu4wzyxcblrf8j1+o6tekq3zgjxru1ho'
// 將加密後的123456轉成base64後跟sign簽名進行驗證
let b = sig.verify(jsrsasign.b64tohex(sign))
b為true 則表示驗證通過
SHA 256演算法流程
sha 256 輸入訊息 m 輸出訊息 256位 bit hash值 步驟 訊息填充 m的長度 mod 512 r,考慮r r為輸入訊息長度按512bit進行分組後,最後一組的長度 系統給出8個32位暫存器 a,b,c,d,e,f,g,h,其初始值分別取自8個素數 2,3,5,7,11,13,17,...
MD5, SHA256, SHA512雜湊演算法
實現各種字串hash雜湊演算法的類 public class stringhasher return results 將隨機生成的salt新增到字串,然後使用md5演算法對字串進行雜湊。salt的長度與演算法生成的長度相同 待雜湊的字串.salt 用於密碼.hash雜湊後的字串.public str...
SHA 256演算法實現過程
1.定義8個32位常量 h0 0x6a09e667 h1 0xbb67ae85 h2 0x3c6ef372 h3 0xa54ff53a h4 0x510e527f h5 0x9b05688c h6 0x1f83d9ab h7 0x5be0cd192.再定義乙個k的32位整形陣列,陣列大小為64 k ...