码迷,mamicode.com
首页 > 编程语言 > 详细

加密算法/安全

时间:2019-07-17 18:25:24      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:tps   加密   区别   相关   cpu   apache   aes   http   www   

为什么需要加密:相信一下,如果信用卡的信息直接明文在互联网上传播,会发生什么?比如你和那个女孩子的聊天艾米信息被传到了你女朋友哪里,会发生什么?
 
加密成了每个程序员需要掌握的必要技能,也是一个“不作恶”程序员的基本
 
加密算法分为:对称加密和非对称加密,以及hash加密
 
简单说两者之间的区别:对称加密算法的加密与解密 密匙相同;非对称加密算法的加密密匙与解密 密匙不同。
 
非对称加密:也称为公开密匙密码加密。需要两个密匙,一个公匙,一个私匙,一个加密,一个解密。用一个密匙加密以后得到的密文,只能用相对应的另一个密匙才能解密。加密密匙的无法用来解密。
 
对称加密:解密加密使用的同一套密匙。
 
对称加密算法速度快,非对称加密算法速度慢。可以结合两种算法一起使用,使用对称加密算法加密信息,使用非对称加密算法加密对称加密的密码,来达到安全性(简单说就是:通过RSA加密AES的密匙)
 
常用加密算法:
如下两种,严格来说不是算法,应该叫信息摘要算法。HASH加密
MD5算法:使用哈希函数;应用场景:对一段信息产生信息摘要,以防止篡改。
    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算法:信息摘要算法,安全性比md5更强,应用场景:检查文件完整性以及数字签名等
public static byte[] computeSHA1(byte[] content) {
    try {
        MessageDigest sha1 = MessageDigest.getInstance("SHA1");
        return sha1.digest(content);
    } catch (NoSuchAlgorithmException e) {
        throw new RuntimeException(e);
    }
}
该算法位于:java.security.MessageDigest 
 
HMAC算法:

对称加密算法:
AES:是密码学中的最高加密标准,该加密算法采用对称分组密码体制
两个密码学的概念:扩散(diffusion)和扰乱(confusion)是影响密码安全的主要因素[5]。扩散的目的是让明文中的单个数字影响密文中的多个数字,从而使明文的统计特征在密文中消失,相当于明文的统计结构被扩散[6]。例如,最简单的方法让明文中的一个数字影响密文中的k个数字,扰乱是指让密钥与密文的统计信息之间的关系变得复杂,从而增加通过统计方法进行攻击的难度。扰乱可以通过各种代换算法实现。
 
DES:分组密码 ,以64位为分组对数据加密。
3DES算法:以DES算法为基础,对数据用三个不同的密匙进行三次加密
TDEA,Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK
非对称加密算法:
RSA算法:目前最有影响力的公匙加密算法,目前最优秀的公匙方案之一。能够同时用于加密和数字签名的算法。 https://blog.csdn.net/yowasa/article/details/72825866
ECC算法:非对称加密算法,更小的密匙,提供更高的安全级别,但是时间更长,CPU消耗严重。
 
RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)。
 
算法相关概念:
时间复杂度:指算法需要消耗的时间资源
控件复杂度:指算法需要消耗的空间资源
 
AES和RSA算法
RSA算法理解:
非对称加密算法
AES算法理解
对称加密算法,
 
Bouncy Castle:https://www.bouncycastle.org/ --加密组件
参考:
DES算法的使用: https://blog.csdn.net/Hwaphon/article/details/52180922(已经不再安全)

加密算法/安全

标签:tps   加密   区别   相关   cpu   apache   aes   http   www   

原文地址:https://www.cnblogs.com/supertrampai/p/11202693.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!