zoukankan      html  css  js  c++  java
  • 【java】之 apache commons-codec 与Apache Digest demo实例,支持md5 sha1 base64 hmac urlencode

    使用commons-codec 进行加密的一些操作

    package com.jiepu.ApacheDigest;
    
    import java.io.FileInputStream;
    
    import org.apache.commons.codec.CharEncoding;
    import org.apache.commons.codec.binary.Base64;
    import org.apache.commons.codec.binary.Hex;
    import org.apache.commons.codec.binary.StringUtils;
    import org.apache.commons.codec.digest.Crypt;
    import org.apache.commons.codec.digest.DigestUtils;
    import org.apache.commons.codec.digest.HmacUtils;
    import org.apache.commons.codec.digest.Md5Crypt;
    import org.apache.commons.codec.digest.Sha2Crypt;
    import org.apache.commons.codec.digest.UnixCrypt;
    import org.apache.commons.codec.net.BCodec;
    import org.apache.commons.codec.net.QCodec;
    import org.apache.commons.codec.net.URLCodec;
    
    /**
     * 
     * apache commons-codec 与Apache Digest demo实例,支持md5 sha1 base64 hmac urlencode
     *
     maven 依赖:
     <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>1.10</version>
    </dependency>
     */
    public class App {
        public static void main(String[] args) throws Exception {
            String str = "你好";
            String key="key";
            URLCodec urlCodec = new URLCodec();
            String code = urlCodec.encode(str, CharEncoding.UTF_8);
            System.out.println(code);
            String data = urlCodec.decode(code, CharEncoding.UTF_8);
            System.out.println(data);
    
            QCodec qcodec = new QCodec();
            code = qcodec.encode(str, CharEncoding.UTF_8);
            System.out.println(code);
            data = qcodec.decode(code);
            System.out.println(data);
            
            BCodec bcodec = new BCodec();
            code = bcodec.encode(str, CharEncoding.UTF_8);
            System.out.println(code);
            data = bcodec.decode(code);
            System.out.println(data);
            
            
            System.out.println(DigestUtils.md5Hex(str));
            System.out.println(DigestUtils.md2Hex(str));
            System.out.println(DigestUtils.sha1Hex(str));
            System.out.println(DigestUtils.sha256Hex(str));
            System.out.println(DigestUtils.sha384Hex(str));
            System.out.println(DigestUtils.sha512Hex(str));
            System.out.println(DigestUtils.shaHex(str));
            
            
            System.out.println(Sha2Crypt.sha512Crypt(str.getBytes()));
            System.out.println(Sha2Crypt.sha512Crypt(str.getBytes()));
            System.out.println(Md5Crypt.md5Crypt(str.getBytes()));
            System.out.println(UnixCrypt.crypt(str.getBytes()));
    
            System.out.println(HmacUtils.hmacMd5Hex(key, str));
            System.out.println(HmacUtils.hmacSha1Hex(key, str));
            System.out.println(HmacUtils.hmacSha256Hex(key, str));
            System.out.println(HmacUtils.hmacSha384Hex(key, str));
            System.out.println(HmacUtils.hmacSha512Hex(key, str));
            
            System.out.println( Md5Crypt.apr1Crypt(str));
            System.out.println(Crypt.crypt(str));
        
            
            code=Base64.encodeBase64String(str.getBytes());
            System.out.println(Base64.isBase64(code));
            System.out.println(StringUtils.newStringUtf8(Base64.decodeBase64(code)));
            
            char[] chs=Hex.encodeHex(str.getBytes());
            System.out.println(chs);
            System.out.println(StringUtils.newStringUtf8(Hex.decodeHex(chs)));
            System.out.println("Hello World!");
            
            System.out.println(DigestUtils.md5Hex(new FileInputStream("c:/gc.log")));
            System.out.println(DigestUtils.sha1Hex(new FileInputStream("c:/gc.log")));
            //DigestUtils.getDigest("md5").digest(input);
        }
    }

    @文转 http://blog.csdn.net/earbao/article/details/42552285

  • 相关阅读:
    关于CSS自文档的思考_css声明式语言式代码注释
    html5中contenteditable属性如果过滤标签,过滤富文本样式
    web前端工程化/构建自动化
    Python连载19-装饰器
    Java连载1-概述&常用的dos命令
    HTML连载18-id选择器与class区别&class选择器使用思路&后代选择器
    Python连载18-closure闭包解释及其注意点
    HTML连载17-id选择器&类选择器
    Python连载17-排序函数&返回函数的函数
    HTML连载16-颜色控制属性2&标签选择器
  • 原文地址:https://www.cnblogs.com/gyjx2016/p/6117481.html
Copyright © 2011-2022 走看看