對稱加密與非對稱加密

加密

對稱加密
image.png
  • 對稱雙方使用同一個密鑰,使用加密算法配上合適的密鑰來加密猾昆,解密時(shí)使用加密過程的完全逆過程配合密鑰來進(jìn)行解密
  • 經(jīng)典算法:DES,AES
  • 優(yōu)點(diǎn):加密計(jì)算小,速度快潦牛,適合對大量數(shù)據(jù)進(jìn)行加密的場景
  • 缺點(diǎn):密鑰傳輸泄露問題
栗子:AES
  • AES是一個迭代的鬓催、對稱密鑰分組的密碼暂幼,它可以使用128走趋、192和256位密鑰爹耗,并且用128位(16字節(jié))分組加密和解密數(shù)據(jù)存淫。
AES加密
public static String encrypt(String text) throws Exception {
    // 私鑰 AES固定格式為128/192/256bits.即:16/24/32bytes荤堪。DES固定格式為128bits合陵,即8bytes。
    String key = "aaaaaaaaaaaaaaaa";
    // 初始化向量參數(shù)澄阳,AES 為16bytes. DES 為8bytes
    String iv ="bbbbbbbbbbbbbbbb"; 
    // 兩個參數(shù)拥知,第一個為私鑰字節(jié)數(shù)組, 第二個為加密方式AES或者DES
    Key keySpec = new SecretKeySpec(key.getBytes(), "AES"); 
    IvParameterSpec ivSpec = new IvParameterSpec(iv.getBytes());
    // 實(shí)例化加密類碎赢,參數(shù)為加密方式低剔,要寫全
    Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
    // 初始化,此方法可以采用三種方式,按服務(wù)器要求來添加襟齿。(1)無第三個參數(shù)(2)第三個參數(shù)為SecureRandom
    //(3)采用此代碼中的IVParameterSpec
    cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec);// random = new SecureRandom();中random對象姻锁,隨機(jī)數(shù)。(AES不可采用這種方法)
    // cipher.init(Cipher.ENCRYPT_MODE, keySpec);
    // SecureRandom random = new SecureRandom();
    // cipher.init(Cipher.ENCRYPT_MODE, keySpec, random);
    byte[] bytes = cipher.doFinal(text.getBytes());// 加密操作,返回加密后的字節(jié)數(shù)組猜欺,然后需要編碼屋摔。主要編解碼方式有Base64, HEX, UUE,
    // 7bit等等。此處看服務(wù)器需要什么編碼方式
    String result = Base64.encodeToString(bytes, Base64.DEFAULT);
    return result;}
AES解密
public static String decrypt(String text) throws Exception {
    String keySpec = "aaaaaaaaaaaaaaaa";
    String iv = "bbbbbbbbbbbbbbbb";
    byte[] textBytes = Base64.decode(text.getBytes(), Base64.DEFAULT);
    IvParameterSpec ivSpec = new IvParameterSpec(iv.getBytes());
    Key key = new SecretKeySpec(keySpec.getBytes(), "AES");
    Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
    cipher.init(Cipher.DECRYPT_MODE, key, ivSpec); // 與加密時(shí)不同MODE:Cipher.DECRYPT_MODE
    String result = cipher.doFinal(textBytes);
    return result; }
非對稱加密
  • 原理:使用公鑰對數(shù)據(jù)進(jìn)行加密得到密文替梨;使用私鑰解密得到明文
image.png

應(yīng)用場景:

1.數(shù)字簽名驗(yàn)證
使用私鑰簽名钓试,發(fā)送簽名數(shù)據(jù)和原數(shù)據(jù),采用公鑰驗(yàn)證副瀑,如果驗(yàn)證后數(shù)據(jù)等于發(fā)過來的原數(shù)據(jù)則正確弓熏,反之

image.png

加密簽名:發(fā)送方使用對方公鑰加密得到密文,在自己的私鑰簽名糠睡,接收方使用自己的私鑰解密挽鞠,用公鑰驗(yàn)證

image.png
  • 經(jīng)典算法: RSA,DSA
BASE64
  • 將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成由64個字符組成的字符串編碼算法
  • 用途:讓原數(shù)據(jù)具有字符串所具有的的特性狈孔,如可以放在URL中傳輸信认,可以保存到文本文件,可以通過普通的聊天軟件進(jìn)行文本傳輸
  • 把原本人眼可以讀懂的字符串變成讀不懂的字符串均抽,降低偷窺風(fēng)險(xiǎn)
壓縮與解壓縮
  • 壓縮:把數(shù)據(jù)換一種方式來存儲嫁赏,以減少存儲空間
  • 解壓縮:把壓縮后的數(shù)據(jù)還原成原先的數(shù)據(jù),以便使用
  • 常見壓縮算法:MP3,JEPG,DEELATE

HASH

  • 定義:把任意數(shù)據(jù)轉(zhuǎn)換成指定大小的范圍(通常很杏突印)的數(shù)據(jù)

  • 左右:摘要潦蝇,數(shù)字指紋

  • 經(jīng)典算法:MD5,SHA1,SHA256

  • 實(shí)質(zhì)用途

    • 數(shù)據(jù)完整性驗(yàn)證
    • 快速查找
    • 隱私保護(hù)
加上hash減小簽名數(shù)據(jù)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市深寥,隨后出現(xiàn)的幾起案子攘乒,更是在濱河造成了極大的恐慌,老刑警劉巖惋鹅,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件则酝,死亡現(xiàn)場離奇詭異,居然都是意外死亡闰集,警方通過查閱死者的電腦和手機(jī)沽讹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來返十,“玉大人妥泉,你說我怎么就攤上這事《纯樱” “怎么了盲链?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我刽沾,道長本慕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任侧漓,我火速辦了婚禮锅尘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘布蔗。我一直安慰自己藤违,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布纵揍。 她就那樣靜靜地躺著顿乒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪泽谨。 梳的紋絲不亂的頭發(fā)上璧榄,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天,我揣著相機(jī)與錄音吧雹,去河邊找鬼骨杂。 笑死,一個胖子當(dāng)著我的面吹牛雄卷,可吹牛的內(nèi)容都是我干的搓蚪。 我是一名探鬼主播,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼龙亲,長吁一口氣:“原來是場噩夢啊……” “哼陕凹!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鳄炉,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎搜骡,沒想到半個月后拂盯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡记靡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年谈竿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片摸吠。...
    茶點(diǎn)故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡空凸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出寸痢,到底是詐尸還是另有隱情呀洲,我是刑警寧澤,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站道逗,受9級特大地震影響兵罢,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜滓窍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一卖词、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧吏夯,春花似錦此蜈、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至杠园,卻和暖如春顾瞪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背抛蚁。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工陈醒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人瞧甩。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓钉跷,卻偏偏與公主長得像,于是被迫代替她去往敵國和親肚逸。 傳聞我的和親對象是個殘疾皇子爷辙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評論 2 359

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