技术18期:数据安全之加密与实现

前言:大数据时代,每个人的生活中都不存在所谓的绝对“秘密”,通过网络上的数据信息可以分析出一个人生活的各种痕迹。因此,保障大数据信息安全至关重要。

 

本文主要介绍了散列算法、对称加密算法非对称加密算法的概念和代码实现。

 

数据安全的重要性

 

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 -

 

文章内容仅代表作者个人观点

作者:陈鸿姣

编辑:詹思璇

 

想了解更多关于人工智能的资讯

别忘了关注普适极客