发表于: 2017-05-15 23:19:51
1 1174
今天完成的事情:
初步学习了DES和MD5加密,Cookie的一些方法等。
DES加密是一种对称加密技术,以现在的技术大约一天的时间就能破解,大多用来加密一些不是很重要但是又要隐藏的信息,比如用户名等。
MD5加密是一种不可逆的加密方式,破解起来难度很高,适用于加密一些用户密码到数据库等。
JavaEE对很多加密方式(DES和MD5)等都有了一些封装,直接调用相关的API就能进行相关的操作。
以下是两个简单的例子:
public class DES {
public static void main(String args[]) throws Exception {
String plainText = "Hello , world !"; //加密内容
String key = "12345678"; //密码,要求key至少长度为8个字符
SecureRandom random = new SecureRandom();
DESKeySpec keySpec = new DESKeySpec(key.getBytes());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("des");
SecretKey secretKey = keyFactory.generateSecret(keySpec);
Cipher cipher = Cipher.getInstance("des");
cipher.init(Cipher.ENCRYPT_MODE, secretKey, random);
byte[] cipherData = cipher.doFinal(plainText.getBytes());
System.out.println("cipherText : " + new BASE64Encoder().encode(cipherData));
//PtRYi3sp7TOR69UrKEIicA==
cipher.init(Cipher.DECRYPT_MODE, secretKey, random);
byte[] plainData = cipher.doFinal(cipherData);
System.out.println("plainText : " + new String(plainData));
//Hello , world !
}}
public class MD5 {
public static void main(String args[]) throws NoSuchAlgorithmException {
String plainText = "Hello , world !";
MessageDigest md5 = MessageDigest.getInstance("md5");
byte[] cipherData = md5.digest(plainText.getBytes());
StringBuilder builder = new StringBuilder();
for(byte cipher : cipherData) {
String toHexStr = Integer.toHexString(cipher & 0xff);
builder.append(toHexStr.length() == 1 ? "0" + toHexStr : toHexStr);
}
System.out.println(builder.toString());
//c0bb4f54f1d8b14caf6fe1069e5f93ad
}
明天打算做的事情:编写登陆注册功能,然后加密解密,cookie操作等等。
遇到的问题:还没了解具体的cookie代码是怎么编写的
收获:DES和MD5两种加密方式的理解和使用
评论