
课程咨询: 400-996-5531
投诉建议: 400-111-8989
认真做教育 专心促就业
通过使用加密算法来保障数据传输安全是目前互联网数据传输过程中经常会用到的一种网络安全方法,而本文我们就通过案例分析来简单了解一下,Java编程加密与安全算法都有哪些类型。
1、数据安全
什么是数据安全?假如Bob要给Alice发送一封邮件,在发送邮件的过程中,黑客可能会窃取到邮件的内容,所以我们需要防窃听;黑客也有可能会篡改邮件的内容,所以Alice必须要有能有去识别邮件是否被篡改;后,黑客也可能假冒Bob给Alice发送邮件,所以Alice还必须有能力识别出伪造的邮件。所以数据安全的几个要点就是:防窃听、防篡改和防伪造。
2、摘要算法
摘要算法(哈希算法/Hash/Digst/数字指纹),计算任意长度数据的摘要(固定长度),相同数据的输入始终得到相同的输出,不同的输入数据尽量得到不同的输出,目的是为了验证原始数据是否被篡改。如果我们的输入是任意长度的数据,而输出的是固定长度的数据,我们就可以称之为摘要算法。Java中Object的hashCode()方法就是一个摘要算法。什么是碰撞呢?碰撞是指两个不同的输入得到了相同的输出,而且碰撞是不能避免的,这是因为输出的字节长度是固定的,而输入的字节的长度是不固定的,所以hash算法实际上是将一个无限的输入集合映射到一个有限的输出集合。
3、对称加密算法
对称加密算法的加密和解密使用同一个密钥,例如WinRAR,我们在对文件进行压缩时,可以设一个密码,再解压时,我们需要使用同一个密码才能进行解压,winRAR就是使用的对称加密算法。加密:encrypt(密钥key,原文message)->密文s,解密:decrypt(密钥key,密文s)->原文message。常用的对称加密算法有DES,AES,IDEA等。由于DES的密钥较短,可以在短时间内暴力破解,现在已经不使用了。
4、密钥交换算法
我们在使用对称加密算法的时候,我们的加密和解密使用的是同一个密钥Key。我们以AES加密为例,当我们要加密明文,我们需要使用一个随机生成的Key作为密钥进行加解密,后我们的问题就是如何传递密钥?因为不给对方密钥,对方就无法解密,而直接传递密钥,会被黑客监听,所以问题就变成了:如何在不安全的信道上安全地传输密钥?密钥交换算法也就是Diff-Hellman算法,即DH算法。
5、数字证书
数字证书可以防止中间人攻击,因为它采用链式签名认证,即通过根证书(RootCA)去签名下一级证书,这样层层签名,直到终的用户证书。而RootCA证书内置于操作系统中,所以,任何经过CA认证的数字证书都可以对其本身进行校验,确保证书本身不是伪造的。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。