小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Apache的加密算法和java自帶的加密算法

 然并卵書屋 2018-09-03

        最近研究了下加密的操作,自己本身對加密不是很熟悉,看了一下java對加密的一些操作,在這里總結一下。java從1.5之后提供了Base64Encoder和Base64Decoder。為大家用的普遍的方法先MD5加密然后base64編碼,代碼如下:

01import java.io.UnsupportedEncodingException;
02import java.security.MessageDigest;
03import java.security.NoSuchAlgorithmException;
04 
05import org.apache.commons.codec.binary.Base64;
06import org.apache.commons.codec.digest.DigestUtils;
07 
08import sun.misc.BASE64Encoder;
09 
10public class EncryptUtil {
11    /**
12     * 使用java原生(先MD5加密在base64編碼)
13     *
14     * @param str
15     * @return
16     */
17    public static String MD5Encode(String str) {
18        String newString = '';
19        BASE64Encoder base64Encoder = new BASE64Encoder();
20        try {
21            MessageDigest digest = MessageDigest.getInstance('MD5');
22            newString = base64Encoder.encode(digest.digest(str
23                    .getBytes('utf-8')));
24        } catch (NoSuchAlgorithmException e) {
25            e.printStackTrace();
26        } catch (UnsupportedEncodingException e) {
27            e.printStackTrace();
28        }
29        return newString;
30    }
31 
32    /**
33     * 使用Apache的工具類
34     * @param str
35     * @return
36     */
37    public static String MD5Encode2(String str) {
38        String newString = '';
39        try {
40            newString = Base64.encodeBase64String(DigestUtils.md5(str
41                    .getBytes('utf-8')));
42        } catch (UnsupportedEncodingException e) {
43            e.printStackTrace();
44        }
45        return newString;
46    }
47 
48    public static void main(String[] args) {
49        System.out.println(EncryptUtil.MD5Encode('哆啦A夢'));
50        System.out.println(EncryptUtil.MD5Encode2('哆啦A夢'));
51    }
52}

看了下源碼,Apache的MD5加密底層用的是java的MessageDigest,使用起來較為方便。當然還對sha算法進行了封裝:

01public String encode(String str) {
02        try {
03            Hex.encodeHexString(DigestUtils.md5(str));
04            //查看源碼等價于
05            DigestUtils.md5Hex(str);
06             
07            DigestUtils.shaHex(str);
08             
09            Hex.encodeHexString(DigestUtils.sha256(str));
10            //查看源碼等價于
11            DigestUtils.sha256Hex(str.getBytes('utf-8'));
12             
13            DigestUtils.sha384Hex(str);
14            DigestUtils.sha512Hex(str);
15        } catch (UnsupportedEncodingException e) {
16            e.printStackTrace();
17        }
18        return str;
19    }
20}

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多