學(xué)點(diǎn)數(shù)據(jù)加密技術(shù)讓你的信息更安全

事件:有消息稱某網(wǎng)站超12G數(shù)據(jù)疑似外泄,涉及數(shù)千萬用戶。

那我們應(yīng)該如何考慮數(shù)據(jù)的安全存儲(chǔ)?

讓我們一起來聊聊數(shù)據(jù)的加密技術(shù)。

1、SHA加密

安全哈希算法(Secure Hash Algorithm)主要適用于數(shù)字簽名標(biāo)準(zhǔn)(Digital Signature Standard DSS)里面定義的數(shù)字簽名算法(Digital Signature Algorithm DSA)。該算法經(jīng)過加密專家多年來的發(fā)展和改進(jìn)已日益完善,并被廣泛使用。

安全散列算法SHA是美國國家標(biāo)準(zhǔn)技術(shù)研究所發(fā)布的國家標(biāo)準(zhǔn)FIPS PUB 180,最新的標(biāo)準(zhǔn)已經(jīng)于2008年更新到FIPS PUB 180-3。其中規(guī)定了SHA-1,SHA-224,SHA-256,SHA-384,和SHA-512這幾種單向散列算法。

單向散列函數(shù)一般用于產(chǎn)生消息摘要,密鑰加密等,常見的有:

l MD5(Message Digest Algorithm 5):是RSA數(shù)據(jù)安全公司開發(fā)的一種單向散列算法。

l SHA(Secure Hash Algorithm):可以對(duì)任意長度的數(shù)據(jù)運(yùn)算生成一個(gè)160位的數(shù)值;

2、Base64

Base64是網(wǎng)絡(luò)上最常見的用于傳輸8Bit字節(jié)代碼的編碼方式之一,Base64編碼可用于在HTTP環(huán)境下傳遞較長的標(biāo)識(shí)信息。例如,在Java Persistence系統(tǒng)hibernate中,就采用了Base64來將一個(gè)較長的唯一標(biāo)識(shí)符(一般為128-bit的UUID)編碼為一個(gè)字符串,用作HTTP表單和HTTP GET URL中的參數(shù)。

然而,標(biāo)準(zhǔn)的Base64并不適合直接放在URL里傳輸,因?yàn)閁RL編碼器會(huì)把標(biāo)準(zhǔn)Base64中的“/”和“+”字符變?yōu)樾稳纭?XX”的形式,而這些“%”號(hào)在存入數(shù)據(jù)庫時(shí)還需要再進(jìn)行轉(zhuǎn)換,因?yàn)锳NSI SQL中已將“%”號(hào)用作通配符。

為解決此問題,可采用一種用于URL的改進(jìn)Base64編碼,它不僅在末尾填充'='號(hào),并將標(biāo)準(zhǔn)Base64中的“+”和“/”分別改成了“-”和“_”,這樣就免去了在URL編解碼和數(shù)據(jù)庫存儲(chǔ)時(shí)所要作的轉(zhuǎn)換,避免了編碼信息長度在此過程中的增加,并統(tǒng)一了數(shù)據(jù)庫、表單等處對(duì)象標(biāo)識(shí)符的格式。

3、Base64Encoder

一直以來Base64的加密解密都是使用sun.misc包下的BASE64Encoder及BASE64Decoder的sun.misc.BASE64Encoder/BASE64Decoder類。這人個(gè)類是sun公司的內(nèi)部方法,并沒有在java api中公開過,不屬于JDK標(biāo)準(zhǔn)庫范疇,但在JDK中包含了該類,可以直接使用。

4、RSA

RSA公鑰加密算法是1977年由羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼(Leonard Adleman)一起提出的。1987年首次公布,當(dāng)時(shí)他們?nèi)硕荚诼槭±砉W(xué)院工作。RSA就是他們?nèi)诵帐祥_頭字母拼在一起組成的。

RSA是目前最有影響力的公鑰加密算法,它能夠抵抗到目前為止已知的絕大多數(shù)密碼攻擊,已被ISO推薦為公鑰數(shù)據(jù)加密標(biāo)準(zhǔn)。

今天只有短的RSA鑰匙才可能被強(qiáng)力方式解破。到2008年為止,世界上還沒有任何可靠的攻擊RSA算法的方式。只要其鑰匙的長度足夠長,用RSA加密的信息實(shí)際上是不能被解破的。但在分布式計(jì)算和量子計(jì)算機(jī)理論日趨成熟的今天,RSA加密安全性受到了挑戰(zhàn)。

缺點(diǎn)

1)產(chǎn)生密鑰很麻煩,受到素?cái)?shù)產(chǎn)生技術(shù)的限制,因而難以做到一次一密。

2)安全性,RSA的安全性依賴于大數(shù)的因子分解,但并沒有從理論上證明破譯RSA的難度與大數(shù)分解難度等價(jià),而且密碼學(xué)界多數(shù)人士傾向于因子分解不是NP問題。

3)速度太慢,由于RSA 的分組長度太大,為保證安全性,n 至少也要 600 bits以上,使運(yùn)算代價(jià)很高,尤其是速度較慢,較對(duì)稱密碼算法慢幾個(gè)數(shù)量級(jí);且隨著大數(shù)分解技術(shù)的發(fā)展,這個(gè)長度還在增加,不利于數(shù)據(jù)格式的標(biāo)準(zhǔn)化。

5、AES對(duì)稱加密

加密技術(shù)可以分為對(duì)稱與非對(duì)稱兩種.

對(duì)稱加密,解密,即加密與解密用的是同一把秘鑰,常用的對(duì)稱加密技術(shù)有DES,AES等

而非對(duì)稱技術(shù),加密與解密用的是不同的秘鑰,常用的非對(duì)稱加密技術(shù)有RSA等

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 這篇文章主要講述在Mobile BI(移動(dòng)商務(wù)智能)開發(fā)過程中,在網(wǎng)絡(luò)通信、數(shù)據(jù)存儲(chǔ)、登錄驗(yàn)證這幾個(gè)方面涉及的加密...
    雨_樹閱讀 3,057評(píng)論 0 6
  • 概述 之前一直對(duì)加密相關(guān)的算法知之甚少,只知道類似DES、RSA等加密算法能對(duì)數(shù)據(jù)傳輸進(jìn)行加密,且各種加密算法各有...
    Henryzhu閱讀 3,234評(píng)論 0 14
  • 1.數(shù)據(jù)安全 01數(shù)據(jù)安全的原則1)在網(wǎng)絡(luò)上"不允許"傳輸用戶隱私數(shù)據(jù)的"明文"2.)在本地"不允許"保存用戶隱私...
    小楓123閱讀 649評(píng)論 0 1
  • 父親愛運(yùn)動(dòng),羽毛球、乒乓球、太極拳、溜冰、游泳、拍照、打撲克,他什么都會(huì),18號(hào)院里的孩子們都喜歡他。周末就纏著他...
    午后窗臺(tái)的貓閱讀 165評(píng)論 0 0
  • 麻雀 麻雀 天上飛 嘰嘰 喳喳 像唱歌 ...
    漢堡包樂園閱讀 746評(píng)論 3 1

友情鏈接更多精彩內(nèi)容