加密算法 - 摘要算法hash算法

摘要算法hash算法 (變長(zhǎng)變定長(zhǎng)驶社,不能還原堵腹,MD5奔脐、SHA俄周、CRC )

它是不可逆的吁讨,不可以解密。所以它只能算的上是一種單向加密算法

名稱 安全性 速度
SHA-1
MD5
  • MD5(Message-Digest Algorithm 5(信息-摘要算法5)):用的是哈希函數(shù)峦朗,它的典型應(yīng)用是對(duì)一段信息產(chǎn)生 信息摘要建丧,以 防止被篡改。無論是多長(zhǎng)的輸入波势,MD5 都會(huì)輸出長(zhǎng)度為 128bits 的一個(gè)串 (通常用 16 進(jìn)制 表示為 32 個(gè)字符)翎朱。
public static final byte[] computeMD5(byte[] content) {
    try {
        MessageDigest md5 = MessageDigest.getInstance("MD5");
        return md5.digest(content);
    } catch (NoSuchAlgorithmException e) {
        throw new RuntimeException(e);
    }
}
  • SHA1(Secure Hash Algorithm 1):比MD5安全性高,但速度相對(duì)于MD5慢尺铣,對(duì)于長(zhǎng)度小于 2 ^ 64 位的消息拴曲,SHA1 會(huì)產(chǎn)生一個(gè) 160 位的 消息摘要。
public static byte[] computeSHA1(byte[] content) {
    try {
        MessageDigest sha1 = MessageDigest.getInstance("SHA1");
        return sha1.digest(content);
    } catch (NoSuchAlgorithmException e) {
        throw new RuntimeException(e);
    }
}
  • HMAC(Hash Message Authentication Code): 密鑰相關(guān)的 哈希運(yùn)算消息認(rèn)證碼(Hash-based Message Authentication Code)凛忿,HMAC 運(yùn)算利用 哈希算法 (MD5澈灼、SHA1 等),以 一個(gè)密鑰 和 一個(gè)消息 為輸入店溢,生成一個(gè) 消息摘要 作為 輸出叁熔。
    HMAC 發(fā)送方 和 接收方 都有的 key 進(jìn)行計(jì)算,而沒有這把 key 的第三方床牧,則是 無法計(jì)算 出正確的 散列值的荣回,這樣就可以 防止數(shù)據(jù)被篡改。
@NotThreadSafe
public class HMacHelper {
    private static final Logger logger = LoggerFactory.getLogger(HMacHelper.class);
    private Mac mac;
 
    /**
     * MAC算法可選以下多種算法
     * HmacMD5/HmacSHA1/HmacSHA256/HmacSHA384/HmacSHA512
     */
    private static final String KEY_MAC = "HmacMD5";
    public HMacHelper(String key) {
        try {
            SecretKey secretKey = new SecretKeySpec(key.getBytes(ConstField.UTF8), KEY_MAC);
            mac = Mac.getInstance(secretKey.getAlgorithm());
            mac.init(secretKey);
        } catch (Exception e) {
            logger.error("create hmac helper failed.", e);
        }
    }
    public byte[] sign(byte[] content) {
        return mac.doFinal(content);
    }
    
    public boolean verify(byte[] signature, byte[] content) {
        try {
            byte[] result = mac.doFinal(content);
            return Arrays.equals(signature, result);
        } catch (Exception e) {
            logger.error("verify sig failed.", e);
        }
        return false;
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末叠赦,一起剝皮案震驚了整個(gè)濱河市驹马,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌除秀,老刑警劉巖糯累,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異册踩,居然都是意外死亡泳姐,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門暂吉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來胖秒,“玉大人,你說我怎么就攤上這事慕的⊙指危” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵肮街,是天一觀的道長(zhǎng)风题。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么沛硅? 我笑而不...
    開封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任眼刃,我火速辦了婚禮,結(jié)果婚禮上摇肌,老公的妹妹穿的比我還像新娘擂红。我一直安慰自己,他們只是感情好围小,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開白布昵骤。 她就那樣靜靜地躺著,像睡著了一般吩抓。 火紅的嫁衣襯著肌膚如雪涉茧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天疹娶,我揣著相機(jī)與錄音伴栓,去河邊找鬼。 笑死雨饺,一個(gè)胖子當(dāng)著我的面吹牛钳垮,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播额港,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼饺窿,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了移斩?” 一聲冷哼從身側(cè)響起肚医,我...
    開封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎向瓷,沒想到半個(gè)月后肠套,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡猖任,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年你稚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片朱躺。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡刁赖,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出长搀,到底是詐尸還是另有隱情宇弛,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布源请,位于F島的核電站枪芒,受9級(jí)特大地震影響轿钠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜病苗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望症汹。 院中可真熱鬧硫朦,春花似錦、人聲如沸背镇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)瞒斩。三九已至破婆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間胸囱,已是汗流浹背祷舀。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留烹笔,地道東北人裳扯。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像谤职,于是被迫代替她去往敵國(guó)和親饰豺。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

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