安裝依賴包
npm i node-rsa生成rsa公私鑰對
const nodersa = require('node-rsa')公鑰加密function
createkey() ) //
生成512位金鑰
const re = /(-----(begin|end)\s\s*\skey-----)|[\n\r]/g //
這裡對格式進行正則處理方便存表,也可以不處理選擇其他方式儲存 如:.pem檔案格式儲存金鑰
return
}console.log('rsakey:', createkey())
/*rsakey:
*/
const nodersa = new nodersa(pubkey, 'pkcs8-public')私鑰解密服務方 接收到 加密引數(encryptstr)、應用標識,並進行解密const encryptstr = nodersa.encrypt(new date().gettime(), 'base64') //
比如擬個 encryptstr 字段,獲取當前時戳(1642561750840)並加密賦值給它 發給服務方
const prikey = new nodersa(prikey, 'pkcs8-private') //-----------------附-------------------配置表通過該 應用標識(一般uuid隨機字串或表id)得到對應 私鑰
const decryptstr = prikey.decrypt(encryptstr, 'utf8') //
並通過該 私鑰(prikey) 解密得:1642561750840
可能遇到的問題:
1. 應用方 通過url query傳參base64密文,服務方 接收時 『+』 變 空格 ?
=> 服務方 替換空格為『+』之後再解密 encryptstr.replace(/\s/g, '+')
2. uuid生成應用標識
const uuid = require('uuid') //view codenpm i uuid
//隨機uuid
function
uuidv4()
console.log('uuid:', uuidv4()) //
uuid: 9289369802684e0cbc57c1001ab9bc27
返回值場景:
1. 應用已授權響應結果2. 授權已到期
4. 應用授權失敗:解密失敗、本次授權過期(通過時戳,設定應用本次 授權過期 時間)
參照表:
`id` bigint(20) not null auto_increment comment '應用授權配置id',
`auid` varchar(255) default null comment '應用標識',
`validtime` datetime default null comment '有效期',
`creator` varchar(255) default null comment '授權人',
`createtime` datetime default null comment '建立時間',
`updatetime` datetime default null comment '修改時間',
primary key (`id`) using btree
) engine=innodb auto_increment=2 default charset=utf8 comment='應用授權配置';
應用授權配置表
Crypto 應用 非對稱加密RSA
1,非對稱加密rsa 1 乙方生成兩把金鑰 公鑰和私鑰 公鑰是公開的,任何人都可以獲得,私鑰則是保密的。2 甲方獲取乙方的公鑰,然後用它對資訊加密。3 乙方得到加密後的資訊,用私鑰解密。2,使用cryptopp實現rsa cryptopp是一套非常完整的加密解密開源解決方案,如何使用這裡就不多說了,...
RSA非對稱加密
現實網路中,web應用的開發少不了需要對敏感資訊來進行加密,但是加密又不能草草了事,過於簡單。一旦被鑽了空子,就成了事故。比如密碼。之前用到了非對稱加密沒做記錄,這次又用到了,所以記錄下來!rsa是目前最有影響力的公鑰加密演算法,該演算法基於乙個十分簡單的數論事實 將兩個大素數相乘十分容易,但那時想...
RSA非對稱加密
對稱加密 演算法 在加密和解密時使用的是同乙個秘鑰 而 非對稱加密演算法 需要兩個 金鑰 來進行加密和解密,這兩個秘鑰是 公開金鑰 public key,簡稱公鑰 和私有金鑰 private key,簡稱私鑰 與對稱加密 演算法 不同,非對稱加密演算法 需要兩個 金鑰 公開金鑰 publickey ...