第一篇随笔

import java.io.IOException;
import java.security.SecureRandom;

import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;

import Decoder.BASE64Decoder;
import Decoder.BASE64Encoder;

public class DesUtil {

private final static String DES = "DES";

public static void main(String[] args) throws Exception {
String data = "1";
String key = "12345678";
System.err.println(encrypt(data, key));
System.err.println(decrypt(encrypt(data, key), key));

}

/**
* Description 根据键值进行加密
* @param data
* @param key 加密键byte数组
* @return
* @throws Exception
*/
public static String encrypt(String data, String key) throws Exception {
byte[] bt = encrypt(data.getBytes(), key.getBytes());
String strs = new BASE64Encoder().encode(bt);
return strs;
}

/**
* Description 根据键值进行解密
* @param data
* @param key 加密键byte数组
* @return
* @throws IOException
* @throws Exception
*/
public static String decrypt(String data, String key) throws IOException,
Exception {
if (data == null)
return null;
BASE64Decoder decoder = new BASE64Decoder();
byte[] buf = decoder.decodeBuffer(data);
byte[] bt = decrypt(buf,key.getBytes());
return new String(bt);
}

/**
* Description 根据键值进行加密
* @param data
* @param key 加密键byte数组
* @return
* @throws Exception
*/
private static byte[] encrypt(byte[] data, byte[] key) throws Exception {
// 生成一个可信任的随机数源
SecureRandom sr = new SecureRandom();

// 从原始密钥数据创建DESKeySpec对象
DESKeySpec dks = new DESKeySpec(key);

// 创建一个密钥工厂,然后用它把DESKeySpec转换成SecretKey对象
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);
SecretKey securekey = keyFactory.generateSecret(dks);

// Cipher对象实际完成加密操作
Cipher cipher = Cipher.getInstance(DES);

// 用密钥初始化Cipher对象
cipher.init(Cipher.ENCRYPT_MODE, securekey, sr);

return cipher.doFinal(data);
}

/**
* Description 根据键值进行解密
* @param data
* @param key 加密键byte数组
* @return
* @throws Exception
*/
private static byte[] decrypt(byte[] data, byte[] key) throws Exception {
// 生成一个可信任的随机数源
SecureRandom sr = new SecureRandom();

// 从原始密钥数据创建DESKeySpec对象
DESKeySpec dks = new DESKeySpec(key);

// 创建一个密钥工厂,然后用它把DESKeySpec转换成SecretKey对象
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);
SecretKey securekey = keyFactory.generateSecret(dks);

// Cipher对象实际完成解密操作
Cipher cipher = Cipher.getInstance(DES);

// 用密钥初始化Cipher对象
cipher.init(Cipher.DECRYPT_MODE, securekey, sr);

return cipher.doFinal(data);
}
}

时间: 2024-10-01 12:41:43

第一篇随笔的相关文章

第一篇随笔,果真还是要注意细节。

学习Java以来第一篇随笔,写一写初学Socket编程中容易碰到的一个问题.照着教材上的例子敲了下面这段单线程网络通信的代码: 这段代码应该是初学Socket编程都要敲的一段,逻辑还是比较简单的.但是一开始我的TCPServer类和TCPClient类运行后,在控制台无法打印出两者通过流交互的信息,在这里卡了很久,在网上查找了一下原因,基本确定了应该是输入流或者输出流阻塞了.但是试了很久还是没有解决问题.后来偶然发现了BufferedReader类的实例方法readLine()是在读到换行符才返

我的第一篇随笔

我的第一篇随笔我的第一篇随笔我的第一篇随笔我的第一篇随笔我的第一篇随笔我的第一篇随笔我的第一篇随笔我的第一篇随笔我的第一篇随笔我的第一篇随笔我的第一篇随笔   .myfollow a:hover { opacity: 1; } .myfollow i { font-size: 36px; } #div_digg { width: 60px; /* position: fixed; right: 0; bottom: 0;*/ margin: 0; z-index: 1000; } .diggit

第一篇随笔 - Hello world!

第一篇随笔 - Hello world! 第一篇随笔 - Hello world! 第一篇随笔 - Hello world! 第一篇随笔 - Hello world! 第一篇随笔 - Hello world! 第一篇随笔 - Hello world! 第一篇随笔 - Hello world! (滑稽) 原文地址:https://www.cnblogs.com/YJZoier/p/9310783.html

我的第一篇随笔-------吹起启程之风

this is my first blog 目前的我只会C的基本语法和C++的STL, 一共写了差不多5000到6000行的代码了吧, 现在的我主要的精力都放在算法与数据结构的学习上,我写博客的目的,不仅是为了使自己对所学的知识掌握的更加透彻,更是为了反思自己,总结经验并把我的经验传播出去, 目前的我所存在的问题: 1.知识面过窄.一直主要在搞算法,因此,编程语法的学习被忽视了 2.学习效率不高.一直在输入知识,却从未输出过自己的知识,缺乏一些标准化的流程,将自己的内隐知识转化成外隐知识,做不到

新年伊始,.net菜鸟入院的第一篇随笔

学习.net有半年了,大二一年都是微软校园的负责人,但是因为根本没有系统的学习过编程的知识,所以一直都是活动负责人的身份,忙忙碌碌也没有什么收获,大三一狠心就退了,想能够踏踏实实的敲敲代码,手上的学习资料很多,不想因为那些无聊的活动耽误自己的学习.现在学习了也有半年了,c#,ado.net,html,css,js,jQuery这些基础知识都已经学习完毕了,下个阶段就是把目前刚刚结束的jQuery写一篇总结,然后开始入手我的第一个三层项目. 三月十号开学学校有一个招聘会,我现在有点儿想去试试但是又

毕业2年,unity3d游戏开发2个月,第一篇随笔

今天是个值得纪念的日子.因为: 人生第一次通宵加班了,开通博客了,毕业刚好2年了,来上海2个月了. 欧了,说点什么吧(- o -)~zZ 一. [西安的日子]   大学过得很普通很普通,没什么波澜起伏的经历(额,我就不说是浑浑噩噩了,还是打算来电正能量吧@[email protected]).一句话就是——也是顺利毕业了,挂过科,还好有个证.就是毕业后,还觉着没玩好&没学好. 哦对了,在西安上的学,在西安开始的人生第一份工作. 大三去了个还算规模比较大的金融行业的软件公司实习,算是真正上的第一份

我的第一篇随笔,写的不好还请见谅- -|

各位女士们,先生们,你们好.感谢您白忙之中浏览我的博客.鄙人去年毕业于湖南的某所高校,学的机械电子工程,工作一年(与所学专业相关),实在提不起兴趣.于今年五月份发出的第一句呐喊:Hello World!.从此踏进了IT之路,尽管大学里面也接触到了C语言(其实只是冰山一角啦),现在发现我之前可能学了一个假的C语言- -,现在的我也没有学C的想法,感觉C语言是最牛逼的编程语言. 毫无悬念的告诉大家,我学的是python,至于为什么是python(这个得去问龟叔),不瞒你说,我在看C语言教程的时候,人

第一篇随笔:用VB.NET搞点简单事情(1)

网络上能搜索到的爬虫文章大多是用python做的,也有少部分是C#做的(小声:所以用VB.NET也可以做爬虫.本文写的是第一步:获取网页) 使用代码前先imports以下内容 Imports System.IO, System.IO.Compression, System.Text, System.Net 写程序前先开浏览器(我用的Chrome),随便上个网页,F12看下header,粘下来useragent备用,也可以粘下accept,cookie等(在本文中用不到 用httpwebreque

Test 第一篇随笔

1  目的 创建此博客是为了记录在CS学习中收获的点点滴滴,另外,听学长说一个好的博客在面试时是个加分项. 2  计划 视情况而定吧,每周至少写一篇,如果想写的很多就多更点. 3   写些什么 很多调试程序使遇到的bug需要记录下来,加深印象,这样下次就不会掉到同一个坑里了,同时也分享给需要的人. 欢迎来到我的博客! 原文地址:https://www.cnblogs.com/raybu/p/12045126.html

大学第一篇随笔

姓名:周刘晋源 学号:160809122 博客地址:http://www.cnblogs.com/zhouliujinyuan/ 爱好:踢足球和长跑,当然爱打打游戏上上网. 关于本科目:以前听过但没接触过,更谈不上了解..... 目标:1先了解c语言这个科目. 2争取每次作业可以完成. 3希望不要挂科...... 期望:希望老师语速稍微慢一些,还有就是指导一下我们常犯的错误. 最后祝愿老师教师节快乐!