加密算法/安全

Posted supertrampai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了加密算法/安全相关的知识,希望对你有一定的参考价值。

为什么需要加密:相信一下,如果信用卡的信息直接明文在互联网上传播,会发生什么?比如你和那个女孩子的聊天艾米信息被传到了你女朋友哪里,会发生什么?
 
加密成了每个程序员需要掌握的必要技能,也是一个“不作恶”程序员的基本
 
加密算法分为:对称加密和非对称加密,以及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(已经不再安全)

以上是关于加密算法/安全的主要内容,如果未能解决你的问题,请参考以下文章

java-信息安全-PBE加密算法

安全模块 - 对称加密算法

常用的安全算法

加密算法/安全

廖雪峰Java10加密与安全-4加密算法-1对称加密算法

非对称加密算法都有哪些,安全性能对比