DES加密介绍以及java实现
DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法。其是一种对称加密算法,所谓对称加密算法即:加密和解密使用相同密钥的算法。DES加密算法出自IBM的研究,后来被美国政府正式采用,之后开始广泛流传,但是近些年使用越来越少,因为DES使用56位密钥,以现代计算能力24小时内即可被破解。虽然如此,在某些简单应用中,我们还是可以使用DES加密算法,本文简单讲解DES的JAVA实现。
操作方法
- 01
首先我们需自行配置自己电脑的java开发环境并安装myeclipse软件。然后点击导航窗口的File,然后选择New,然后选择Java Project。选择完成后点击,即可进入创建java项目界面。具体操作如下图所示。
- 02
在创建项目界面,首先我们填写项目名称:DESJDKUtil,然后选择JRE环境本篇选择为jdk7,以上操作完毕后点击Finish,完成java项目的创建。
- 03
然后我们打开项目,选择项目,右击在弹出选项内选择New,然后选择Class。进行java实体类的创建。具体操作如下图所示。
- 04
在实体类创建界面,我们首先输入本类所在的包:com.util,然后填写类名称:DESUtil,然后勾选自动生成main方法,最后点击Finish完成实体类的创建。
- 05
实体类创建完毕后,我们接下来在实体类内编写我们本次教程需要的代码。首先我们编写一个将byte数组转换为16进制数据输出的函数。此教程内函数名称为:convertByteToHexString,具体实现如下图所示。
- 06
接下来我们编写实现DES加密的方法,本教程内方法名称为:jdkDECENcode,DES的加密方法主要利用了SecretKeyFactory生成密钥,以及Cipher类实现对消息的加密,最终返回结果为byte数组。具体操作如下图所示。
- 07
下面我们编写实现DES的解密方法,本教程方法名称为:jdkDECDecode,其核心同加密算法一样,都是生成了需要的SecretKey,调用Cipher类的方法实现。返回结果为byte数组,具体操作如下图所示。
- 08
然后我们在main方法内编写对DES加密方法解密方法的测试代码,首先定义要加密的信息为:hello des,然后定义密钥为:1234567812345678(注此处密钥长度必须为8的倍数)。然后分别调用写好的加密以及解密算法。具体实现如下图所示。
- 09
最后我们执行测试,通过测试结果我们可以看到加密后的信息,以及解密后还原为原始信息。具体展示如下图所示。