概述
前言:大数据时代,每个人的生活中都不存在所谓的绝对“秘密”,通过网络上的数据信息可以分析出一个人生活的各种痕迹。因此,保障大数据信息安全至关重要。
本文主要介绍了散列算法、对称加密算法和非对称加密算法的概念和代码实现。
数据安全的重要性
1. 数据保密性
数据只能由授权实体存取、识别,放置非授权泄露,即数据不能被未授权的第三方使用 。
2. 数据完整性
防止非授权实体对数据进行非法篡改,即数据在传输过长中不能被未授权方修改。
3. 数据可用性
数据对于授权实体是可用的,有效的。
什么是数据加密?
数据加密的核心是密码学,指通过加密算法和加密密钥将明文的文件或者数据转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文。
通过对数据的加密、解密有效地提高企业应用的安全性,数据加密可以在企业应用中的多个环节实现。比如:可对机要数据进行加密后再存储,对用户的口令加密后存储的等。
加密算法介绍
加密算法一般划分为:对称加密和非对称加密算法;除此之外还有一种是散列(Hash)算法。严格上讲:HASH 算法是一种消息摘要算法,不是一种加密算法,但由于其单向运算,具有一定的不可逆性,成为加密算法中的一个构成部分,完整的加密机制不能仅依赖 HASH 算法。
三种类别的加密算法详见下表:
应用建议:在实际的操作过程中,我们通常采用的方式是采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,这样我们就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点。
常见算法速度、安全性等详见下表:
加密算法消息通信过程
1、Hash算法
2、对称加密算法
3、非对称加密算法
加密实现
一、Hash算法
1、java自带的MessageDigest实现加密,实现步骤如下:
1) 获取指定摘要算法,参数可以输入MD5、SHA等
MessageDigest md=MessageDigest.getInstance("MD5");
2) 计算md5函数
md.update(byte str);或md.update(byte[] str);
3) 获取消息摘要结果
md.digest()
代码示例如下:
2、java自带的Mac实现加密,实现步骤如下:
1) 产生密钥
algorithm算法,比如:HmacMD5、HmacSHA1
SecretKey secretKey =KeyGenerator.getInstance(algorithm).generateKey();
2) 实列MAC
Mac mac = Mac.getInstance(secretKey.getAlgorithm());
3) 执行摘要
mac.doFinal(pwd.getBytes());
代码示例如下:
二、对称加密算法
1、消息传递模型
消息传递模型步骤如下:
2、java自带的Cipher实现
实现步骤如下:
(1) 密钥构建,代码示例如下:
(2)生成密钥,代码示例如下:
(3) 加密实现,实现步骤如下:
1) 实例化Cipher
2) 初始化
3) 设置加密模式
4) 执行操作
代码示例如下:
(4)解密实现,实现步骤如下:
1) 实例化Cipher
2) 初始化
3) 设置解密模式
4) 执行操作
代码示例如下:
三、非对称加密算法
1、消息传递模型步骤如下:
2、java自带的Cipher实现
实现步骤如下:
(1) 公钥、私钥,密钥对构建,代码示例如下:
(2)私钥加密,加密步骤如下:
1) 获取私钥
2) 生成私钥
3) 实例化Cipher
4) 初始化
5) 设置加密模式
6) 执行操作
代码示例如下:
(3)私钥解密,解密步骤如下:
1) 获取私钥
2) 生成私钥
3) 实例化Cipher
4) 初始化
5) 设置解密模式
6) 执行操作
代码示例如下:
(4)公钥加密,加密步骤如下:
1) 获取公钥
2) 生成公钥
3) 实例化Cipher
4) 初始化
5) 设置加密模式
6) 执行操作
代码示例如下:
(5)公钥解密,解密步骤如下:
1) 获取公钥
2) 生成公钥
3) 实例化Cipher
4) 初始化
5) 设置解密模式
6) 执行操作
代码示例如下:
总结:加密重要吗?当然,它们是一个额外的保护层。
- THE END -
文章内容仅代表作者个人观点
作者:陈鸿姣
编辑:詹思璇
想了解更多关于人工智能的资讯
别忘了关注普适极客
最后
以上就是伶俐帆布鞋为你收集整理的技术18期:数据安全之加密与实现 的全部内容,希望文章能够帮你解决技术18期:数据安全之加密与实现 所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复