angular4AES加密和解密竭恬、RSA加密和MD5簽名

廢話不多說褥赊,上干貨(本文不涉及后端)

AES加密

AES 在密碼學中又稱 Rijndael 加密法糕档,用來替代原先的 DES,已經(jīng)被多方分析且廣泛使用拌喉。
在部分websocket的通訊中為了防止用戶的聊天內(nèi)容被竊取速那,采用了AES加密
使用npm安裝crypto-js

npm install crypto-js --save

創(chuàng)建一個加密服務:

// crypto.service.ts
import { Injectable } from '@angular/core';
import * as Crypto from "crypto-js";

@Injectable()
export class CryptoService {
  private key: string;
  constructor() {
    this.key = Crypto.enc.Latin1.parse('秘鑰');
    this.iv = Crypto.enc.Latin1.parse('秘鑰偏移量')
  }

  /**
   * AES加密
   * @param {Object} data 加密對象
   * @description 用于對ws通訊內(nèi)容的加密
   * @return {String} 加密后的字符串
   */
  encrypt(data){
    let res = Crypto.AES.encrypt(JSON.stringify(data), this.key, {
      iv: this.iv,
      mode: Crypto.mode.CBC,
      padding: Cryto.pad.Pkcs7
    }).toString();
    return res;
  }

  /**
   * AES解密
   * @param {String} data 解密對象
   * @description 用于對ws通訊內(nèi)容的解密
   * @return {String} 解密后的對象字符串,可用JSON轉(zhuǎn)為對象
   */
  decrypt(data) {
    let res = Crypto.AES.decrypt(data, this.key, {
      iv: this.iv,
      mode: Crypto.mode.CBC,
      padding: Crypto.pad.Pkcs7
    })
    return Crypto.enc.Utf8.stringify(res);
  }
}

在使用到的組件中尿背,可以直接import此服務使用加密和解密功能了端仰。

MD5簽名

MD5簽名主要作用是驗證數(shù)據(jù)的一致性,確保這個數(shù)據(jù)是你真正的用戶發(fā)送的田藐,而非偽造的數(shù)據(jù)

npm install ts-md5 --save

在上面的服務中引入

import { Md5 } from 'ts-md5/dist/md5';
// 使用
sign = Md5.hashStr('需要簽名的數(shù)據(jù)'+md5Key);

使用MD5簽名后得出一段字符串荔烧,可以拼接在數(shù)據(jù)文本后面或者其他方式傳送給后臺用于驗簽

RSA加密

npm install jsrsasign --save
import jsrsasign from 'jsrsasign';

/**
   * RSA加密吱七、簽名
   * @param data 加密字符串
   * @return {String} string,加密后的base64格式字符串
   */
rsaEncrypt(data){
  let enc, base64Sign;
  let rsa = new jsrsasign.RSAKey();
  rsa = jsrsasign.KEYUTIL.getKey(this.publicKey)
  enc = jsrsasign.KJUR.crypto.Cipher.encrypt(data, rsa);
  base64Sign = jsrsasign.hextob64(enc);
  return base64Sign;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鹤竭,一起剝皮案震驚了整個濱河市陪捷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌诺擅,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件啡直,死亡現(xiàn)場離奇詭異烁涌,居然都是意外死亡,警方通過查閱死者的電腦和手機酒觅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門撮执,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人舷丹,你說我怎么就攤上這事抒钱。” “怎么了颜凯?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵谋币,是天一觀的道長。 經(jīng)常有香客問我症概,道長蕾额,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任彼城,我火速辦了婚禮诅蝶,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘募壕。我一直安慰自己调炬,他們只是感情好,可當我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布舱馅。 她就那樣靜靜地躺著缰泡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪代嗤。 梳的紋絲不亂的頭發(fā)上匀谣,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天,我揣著相機與錄音资溃,去河邊找鬼武翎。 笑死,一個胖子當著我的面吹牛溶锭,可吹牛的內(nèi)容都是我干的宝恶。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼垫毙!你這毒婦竟也來了霹疫?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤综芥,失蹤者是張志新(化名)和其女友劉穎丽蝎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體膀藐,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡屠阻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了额各。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片国觉。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖虾啦,靈堂內(nèi)的尸體忽然破棺而出麻诀,到底是詐尸還是另有隱情,我是刑警寧澤傲醉,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布蝇闭,位于F島的核電站,受9級特大地震影響硬毕,放射性物質(zhì)發(fā)生泄漏丁眼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一昭殉、第九天 我趴在偏房一處隱蔽的房頂上張望苞七。 院中可真熱鬧,春花似錦挪丢、人聲如沸蹂风。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽惠啄。三九已至,卻和暖如春任内,著一層夾襖步出監(jiān)牢的瞬間撵渡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工死嗦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留趋距,地道東北人。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓越除,卻偏偏與公主長得像镰惦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子虹钮,可洞房花燭夜當晚...
    茶點故事閱讀 45,685評論 2 360

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