java md5加密解密_技术09期:数据安全之加密与实现

9bd9c0ca5e2cd5ba13606536ba7186af.gif

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

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

数据安全的重要性

1. 数据保密性

数据只能由授权实体存取、识别,放置非授权泄露,即数据不能被未授权的第三方使用 。

2. 数据完整性

防止非授权实体对数据进行非法篡改,即数据在传输过长中不能被未授权方修改。

3. 数据可用性

数据对于授权实体是可用的,有效的。

什么是数据加密?

数据加密的核心是密码学,指通过加密算法和加密密钥将明文的文件或者数据转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文。

通过对数据的加密、解密有效地提高企业应用的安全性,数据加密可以在企业应用中的多个环节实现。比如:可对机要数据进行加密后再存储,对用户的口令加密后存储的等。

加密算法介绍

加密算法一般划分为:对称加密非对称加密算法;除此之外还有一种是散列(Hash)算法。严格上讲:HASH 算法是一种消息摘要算法,不是一种加密算法,但由于其单向运算,具有一定的不可逆性,成为加密算法中的一个构成部分,完整的加密机制不能仅依赖 HASH 算法。

三种类别的加密算法详见下表:

f4e517e549df712fa3a70acefd8b1893.png

应用建议:在实际的操作过程中,我们通常采用的方式是采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,这样我们就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点。

常见算法速度、安全性等详见下表:

da381004130f6c5169545d670ecab452.png2aa7567cf72ee5cf8f69bdbfc4f91b79.png

faa29d6c6eebcce92f7beb8533ffc531.png

加密算法消息通信过程

1、Hash算法

207349aded7b39f3e93be50cf0b4803f.png

2、对称加密算法

9c0dfecabbb11570e8e10a49bc023354.png

3、非对称加密算法

37e9fac1647cb82c8457fe821eb5fa7e.png

加密实现

一、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()

 代码示例如下:

bcc3853b02fa46edd7185c106e79c566.png

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());

代码示例如下:

8bea660ff6357b738729c1fd07649dd3.png

二、对称加密算法

1、消息传递模型

消息传递模型步骤如下:

01e1622c7b35c82c212fc2ed9344a9b9.png

2、java自带的Cipher实现

实现步骤如下:

(1) 密钥构建,代码示例如下:

d897b0f42ee324b8f92821fb7897c130.png

(2)生成密钥,代码示例如下:

a35b7eaa4efad80c438d447b7bcbe9b9.png

(3) 加密实现,实现步骤如下:

1) 实例化Cipher

2) 初始化

3) 设置加密模式

4) 执行操作

代码示例如下:

0290788569e45b79dd3e20b1a116e517.png

(4)解密实现,实现步骤如下:

1) 实例化Cipher

2) 初始化

3) 设置解密模式

4) 执行操作

代码示例如下:

6b5fcf9b792eb560536e45d1b39a922a.png

三、非对称加密算法

1、消息传递模型步骤如下:

f9c8115ced116d33d42eb292aad7f21f.png

353e9d170a6cfa10fc4c74d56b9db119.png

2、java自带的Cipher实现

实现步骤如下:

(1) 公钥、私钥,密钥对构建,代码示例如下:

08b3b399c7dd0ab0d68432c47340bc84.png

(2)私钥加密,加密步骤如下:

1) 获取私钥

2) 生成私钥

3) 实例化Cipher

4) 初始化

5) 设置加密模式

6) 执行操作

代码示例如下:

ce1b4c9c10fb069dc54350c32523fda6.png(3)私钥解密解密步骤如下:

1) 获取私钥

2) 生成私钥

3) 实例化Cipher

4) 初始化

5) 设置解密模式

6) 执行操作

代码示例如下:

f8df46c320c913f6fa3758ddba8855cd.png

(4)公钥加密,加密步骤如下:

1) 获取公钥

2) 生成公钥

3) 实例化Cipher

4) 初始化

5) 设置加密模式

6) 执行操作

代码示例如下:

7d7548e8feeff333656c8c17904d2b8c.png

(5)公钥解密,解密步骤如下:

1) 获取公钥

2) 生成公钥

3) 实例化Cipher

4) 初始化

5) 设置解密模式

6) 执行操作

代码示例如下:

c5cc69aeedffd0fe07ff41a32ad87a16.png

总结:加密重要吗?当然,它们是一个额外的保护层。

- THE END -

文章内容仅代表作者个人观点 作者:陈鸿姣 编辑:詹思璇 cf91d269941aa698278934496d3b5ba5.png

python小白必看,“游戏化学习”更易上手

7dfc4e98313ce7ae585c92a79fbb6db5.png

技术08期:近几年崛起的Pytorch究竟是何方神圣?

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

别忘了关注普适极客

c254921c24c6bcdfe7ea53f9a737aeaf.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值