java DES算法实现字符串加密(本地txt存取)

什么是DES加密算法

常见加密算法有对称加密算法和非对称加密算法,它们的区别是加密和解密使用的是否是同一把钥匙,常见的对称加密算法有DES,非对称算法有RSA,我们这里重点介绍DES加密算法,我们希望把这种算法应用在本地账号密码信息的加密上。顾名思义,秘钥在这里用来加密数据,解密数据的,我们通过原字符串和秘钥可以获得加密后的字节数组,保存在本地,取出后,利用秘钥解密得到之前存储的字符串,在生产字符串之前,我们是无法通过别的途径拿到数据的。我们这里重点介绍DES算法的使用,在Java中,有一组DES的API,我们需要学会如何去使用它。

DES加密算法的特点

  1. 秘钥是字节数组,且其长度必须是8的整数倍。
  2. 加密、解密都需要同一把秘钥参与(它是一个字节数组)。
  3. 对称加密算法,加密和解密的流程类似。

需要注意的地方

  1. 我们采用IO流的方式存取数据,存数据的时候是直接把字节数组写入文件流。
  2. 取出数据时,我们先用一个长数组接收(假设长度未知),再获取字节数组的长度,然后截取相应长度到新数组。
  3. 解密后得到的是字节数组,且其中每个元素都是用ASCII码表示的,我们需要把它转为字符串。

Java实现DES加密、解密字符串及本地存取数据

1、字符串加密,解密,IO流本地存取:

public class Test {
   	
	/**
	 * 把字符串加密得到字节数组写入文件保存在本地,等待取出;当需要用到的时候,取出字节数组,解密 ,转字符串
	 * @param args
	 */
	public static void main(String[] args){
        		
		 byte[] buff1 = null; //申明变量,等下要用到
		 String password = "231rg34324234324dgdgdg3"; //需要加密的内容
		 System.out.println("需要加密的字符串:"+password);
		 byte[] key ={
   1,2,3,4,5,6,7,8}; //8位密钥
		 byte[] result1 = DES.desEncrypt(password.getBytes(), key ) ;//加密,返回加密后的字节数组
	     System.out.println("加密后的字节数组:"+Arrays.toString(result1<
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值