首页 > 其他 > 详细

简单的位加密解密和MD5加密的例子

时间:2016-03-15 20:34:26      阅读:241      评论:0      收藏:0      [点我收藏+]

简单的位运算加密解密

package com.example.shoujiweishi.utils;

public class EncryptTools {
    
    /**
     * @param seed
     *      加密的种子
     * @param str
     *      要加密的字符串
     * @return
     */
    public static String encrypt(int seed,String str){
        byte[] bytes = str.getBytes();
        for (int i = 0; i < bytes.length; i++) {
            bytes[i] ^= seed;//对字节加密
        }
        return new String(bytes);
    }
    
    /**
     * @param seed
     *     解密的种子
     * @param str
     * @return
     */
    public static String decryption(int seed,String str){
        byte[] bytes = str.getBytes();
        for (int i = 0; i < bytes.length; i++) {
            bytes[i] ^= seed;//对字节加密
        }
        return new String(bytes);
    }

}

 

 

MD5加密,MD5加密不可逆

package com.example.shoujiweishi.utils;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class Md5Utils {
    public static String md5(String str){
        StringBuilder sb = new StringBuilder();
        try {
            //获取MD5加密器
            MessageDigest md = MessageDigest.getInstance("MD5");
            byte[] bytes = str.getBytes();
            byte[] digest = md.digest(bytes);
            
            for (byte b : digest) {
                //把每个字节转换成16进制数
                int d = b & 0xff;//0x00 00 00 00 ff
                String hexString = Integer.toHexString(d);
                if(hexString.length() == 1){
                    hexString = "0" + hexString;
                }
                
                sb.append(hexString);
            }
        } catch (NoSuchAlgorithmException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        return sb + "";
    }
}

 

简单的位加密解密和MD5加密的例子

原文:http://www.cnblogs.com/znyyjk/p/5280951.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!