发表于: 2017-05-15 23:19:51

1 1175


今天完成的事情:


初步学习了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两种加密方式的理解和使用



返回列表 返回列表
评论

    分享到