常用的加密算法

常见的七种加密算法 以及实现

数字签名、信息加密是前后端开发经常使用到的技术,应用场景包括了用户登入、交易、信息通讯、oauth等等。不同应用场景可能需要搭配不同的应用算法来实现。

数字签名

数字签名,通过可鉴别的数字信息验证 自身身份的一种方式,可以理解为现实生活当中身份证的身份证号码。

一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。发送者持有私钥,接收者持有私钥对应的公钥。能够在接受到来自发送者信息时用于验证其身份。

加密和解密

  • 加密
    • 数据加密的基本过程,就是对原来为明文的文件或按照某种算法进行处理,让其成为不可读的一段代码,通常称为密文。用于保护数据不被人获取,窃取。
  • 解密
    • 加密的逆过程为解密,即将该编码信息转化为其原来数据的过程

对称加密和非对称加密

加密算法份对称加密和非对称加密,其中对称加密的算法与解密密钥相同,非对称加密算法的加密密钥与解密密钥不同,此外还有一类不需要密钥的散列算法。

常见的对称加密算法主要有DES 3DES AES等,常见的非堆成算法主要有RSA DSA 等,散列算法主要有SHA-1 MD5

对称加密

对称加密算法时应用较早的加密算法,又称为共享密钥加密算法。在对称加密算法中,使用的密钥只有一个,发送和接送双方都使用这个密钥对数据进行加密和解密。

  1. 数据加密过程:在对称加密算法中,数据发送将铭文和加密密钥一起经过特殊加密处理,生成复杂的加密密文进行发送

  2. 数据解密过程:数据接收方收到密文后,若相等读取原数据,则需要使用加密密钥及相同的逆算法进行解密,恢复成明文

非对称加密

非对称加密算法(公开密钥加密算法),它需要2个密钥,一个public Key,一个private Key。因为加密和解密使用的是2个不通的密钥,所以这种算法称为非对称加密算法。

  1. 如果公钥对数据进行加密。只有对应的私钥才能进行解密
  2. 如果使用私钥对数据进行加密,只有对应的公钥才能进行解密。

比如A用户生成了一对密钥,然后把公钥公开给B 。B使用公钥加密发送给A。A再使用自己保存的私钥去解密。

常见的签名加密算法

MD5算法

MD5用的是hash函数,它的典型应用是对一段信息摘要,以防止被篡改,严格来说,MD5不是一种加密算法,而是摘要算法,无论多长的输入,MD5都会输出长度为32个字符的一个字符串。

     //采用MD5加密算法
        MessageDigest md = MessageDigest.getInstance("MD5");
        //加密
        byte[] digest = md.digest("123456".getBytes());

SHA1算法

SHA1是和M5一样的消息摘要算法,然而SHA1比MD5的安全性更强。

 //采用MD5加密算法
        MessageDigest md = MessageDigest.getInstance("SHA1");

HMAC算法

HMAC是密钥相关的哈希运算消息认证码,HMAC运算利用哈希算法,以一个密钥和一个消息未输入,生成一个消息摘要作为输出。

HMAC在多线程环境下是不安全的。如果需要在多线程访问的时候,进行同步的辅助类,使用ThreadLocal为每个线程缓存一个实例可以避免进行锁操作。

AES/DES/3DES算法

AES\DES\3DES都是对称的块加密算法发,加解密的过程是可逆的,常用的有AES128/AES192/AES256。

DES算法

DES加密算法是一种分组密码,以64位分组对数据加密,它的密钥长度是56位,加密解密用同一算法。DES加密算法是对密钥进行保密,而公开算法,包括加密和解密算法。

3DES算法

基于DES的堆成算法,对一块数据用三个不同的密钥进行三次加密,强度更高。

AES加密算法

AES 加密算法是密码学中的高级加密标准,该加密算法采用分组密码体制,密钥长度最少支持位128、192、256,分组长度128位,算法应易于各种硬件和软件实现。AES 本身就是为了取代DES。AES具有更好的安全性,效率和灵活性

RSA算法

RSA加密算法是目前最有影响力的公钥加密算法,并且被普遍认为是目前最优秀的公钥方案之一。RSA是第一个同时用于加密和数字签名的算法。它能够抵抗到目前为止已知 的所有密码攻击。

ECC算法

ECC也是一种非对称加密算法,主要优势是在某些情况下,它比其他的方法使用更下的密钥,比如RSA加密算法,提供相当或更高等级的安全级别。不过一个缺点是加密和解密操作的实现比其他机制时间长。(CPU消耗严重)

对称算法

密钥管理:比较难,不适合互联网,一般用于内部系统。
安全性:中
加密速度:快好几个数量级 (软件加解密速度至少快 100 倍,每秒可以加解密数 M 比特数据),适合大数据量的加解密处理。

非对称算法

密钥管理:密钥容易管理。
安全性:高
加密速度:比较慢,适合 小数据量加解密或数据签名。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容

  • 上一篇博客介绍了MD5加密算法,MD5加密不可逆的特性决定了在很多场景下并不适用。如在某些需要对加密后的密文进行解...
    钟小明_阅读 1,378评论 0 1
  • 概述 加密算法分为单向加密和双向加密,明文数据通过加密后传输,以确保传输和存储安全 单向加密包括 MD5、SHA、...
    聪明的奇瑞阅读 1,650评论 0 1
  • 常用的加解密算法分三大类:非对称密钥加密算法、对称密钥加密算法、Hash加密算法 非对称密钥加密算法常见算法:RS...
    茶铺里的水阅读 1,801评论 0 0
  • 写在前面的话 腾讯大佬问的,被问到了,当时好尴尬... (一)对称性加密 1、MD5加密(无解密方法,解密不可逆)...
    赵国星阅读 209评论 0 0
  • RSA:非对称的加密算法,加密使用公钥加密,解密需要公钥+私钥解密AES,DES:对称算法,加密解密使用的是同一个...
    还是那个没头脑阅读 1,220评论 0 0