WEB如何使用RSA加密數(shù)據(jù)(公鑰加密)

最近一個(gè)項(xiàng)目的登錄接口需要加密處理。考慮到HTTPS環(huán)境搭建以及后期各種維護(hù)和效率等因素,想要采用非對稱加密RSA與對稱加密算法AES相結(jié)合的方案拜效。由于RSA加密數(shù)據(jù)量有限喷众,而且速度相對較慢,因此用AES來加密數(shù)據(jù)紧憾,用RSA來傳遞AES密鑰到千。
因?yàn)殚_發(fā)的是WebAPP,于是需要找一個(gè)RSA算法JS庫赴穗。試了各種例子憔四,忙活了一整天,還是沒成功實(shí)現(xiàn)般眉。最后找到了RSAjs了赵,終于實(shí)現(xiàn)了功能。現(xiàn)在記錄一下使用方法甸赃。
1.使用opensll工具生成私鑰柿汛,并獲取e:
OpenSSL> genrsa -out rsa_private_key.pem 1024

2.使用opensll工具從私鑰中提取Modulus
rsa -in rsa_private_key.pem -noout -modulus


3.使用官方提供的demo進(jìn)行測試

經(jīng)過測試后,發(fā)現(xiàn)終于成了埠对,于是提取關(guān)鍵代碼

function do_encrypt(modulus, data) {
    var value = "";
    var rsa = new RSAKey();
    rsa.setPublic(modulus, "10001");
    var res = rsa.encrypt(data);
    if(res) {
        value = linebrk(hex2b64(res), 64);
    }
    return value;
}

該函數(shù)需要引入官方的js庫

jsbn.js
prng4.js
rng.js
rsa.js
base64.js

使用時(shí)提示缺少函數(shù)hex2b64()還需要從官方例子引入該函數(shù)

function hex2b64(h) {
     var b64map="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
    var b64padchar="=";
    var i;
    var c;
    var ret = "";
    for(i = 0; i+3 <= h.length; i+=3) {
        c = parseInt(h.substring(i,i+3),16);
        ret += b64map.charAt(c >> 6) + b64map.charAt(c & 63);
    }
    if(i+1 == h.length) {
        c = parseInt(h.substring(i,i+1),16);
        ret += b64map.charAt(c << 2);
    }
    else if(i+2 == h.length) {
        c = parseInt(h.substring(i,i+2),16);
        ret += b64map.charAt(c >> 2) + b64map.charAt((c & 3) << 4);
    }
    while((ret.length & 3) > 0) ret += b64padchar;
    return ret;
}

另附上RSA and ECC in JavaScript的地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末络断,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子项玛,更是在濱河造成了極大的恐慌貌笨,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件襟沮,死亡現(xiàn)場離奇詭異锥惋,居然都是意外死亡昌腰,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門净刮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來剥哑,“玉大人,你說我怎么就攤上這事淹父≈暧ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵暑认,是天一觀的道長困介。 經(jīng)常有香客問我,道長蘸际,這世上最難降的妖魔是什么座哩? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮粮彤,結(jié)果婚禮上根穷,老公的妹妹穿的比我還像新娘。我一直安慰自己导坟,他們只是感情好屿良,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著惫周,像睡著了一般尘惧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上递递,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天喷橙,我揣著相機(jī)與錄音,去河邊找鬼登舞。 笑死贰逾,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的菠秒。 我是一名探鬼主播似踱,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼稽煤!你這毒婦竟也來了核芽?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬榮一對情侶失蹤酵熙,失蹤者是張志新(化名)和其女友劉穎轧简,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體匾二,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡哮独,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年拳芙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片皮璧。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡舟扎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出悴务,到底是詐尸還是另有隱情睹限,我是刑警寧澤钉稍,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布怨规,位于F島的核電站,受9級(jí)特大地震影響豪椿,放射性物質(zhì)發(fā)生泄漏别洪。R本人自食惡果不足惜叨恨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望挖垛。 院中可真熱鬧痒钝,春花似錦、人聲如沸痢毒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽闸准。三九已至,卻和暖如春梢灭,著一層夾襖步出監(jiān)牢的瞬間夷家,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來泰國打工敏释, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留库快,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓钥顽,卻偏偏與公主長得像义屏,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子蜂大,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • /**ios常見的幾種加密方法: 普通的加密方法是講密碼進(jìn)行加密后保存到用戶偏好設(shè)置( [NSUserDefaul...
    彬至睢陽閱讀 2,932評(píng)論 0 7
  • 1.數(shù)據(jù)安全 01 攻城利器:Charles(公司中一般都使用該工具來抓包闽铐,并做網(wǎng)絡(luò)測試) 注意:Charles在...
    Lucky丶晴閱讀 1,403評(píng)論 0 9
  • “教練,給我報(bào)上名奶浦⌒质”我獨(dú)自來到~~寶通駕校,找到李教練說道澳叉,“不交錢沒有練車的動(dòng)力隙咸,交了錢就自己督促自己...
    走過不惑閱讀 852評(píng)論 3 4
  • 產(chǎn)假休完之后沐悦,選擇繼續(xù)上班,這是一段艱難的歷程五督,現(xiàn)在正猶豫不決中度過藏否。 寶寶五個(gè)月時(shí)候,就回到了工作崗位充包,因?yàn)樵诠?..
    趙淇淇閱讀 263評(píng)論 0 0
  • 轉(zhuǎn)載自《Swift 語言指南》 @SwiftLanguage 更新于 2016-6-6副签,更新內(nèi)容詳見 Issue ...
    溫特兒閱讀 1,071評(píng)論 0 1