日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

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

 然并卵書屋 2018-09-03

        最近研究了下加密的操作,自己本身對(duì)加密不是很熟悉,看了一下java對(duì)加密的一些操作,在這里總結(jié)一下。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夢(mèng)'));
50        System.out.println(EncryptUtil.MD5Encode2('哆啦A夢(mèng)'));
51    }
52}

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

01public String encode(String str) {
02        try {
03            Hex.encodeHexString(DigestUtils.md5(str));
04            //查看源碼等價(jià)于
05            DigestUtils.md5Hex(str);
06             
07            DigestUtils.shaHex(str);
08             
09            Hex.encodeHexString(DigestUtils.sha256(str));
10            //查看源碼等價(jià)于
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}

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多