160705、总结:commons-codec.jar中常用方法
一、Base64编码和解码
import org.apache.commons.codec.EncoderException;
import org.apache.commons.codec.binary.Base64;
public class TestBase64 {
public static void main(String[] args) throws EncoderException, UnsupportedEncodingException {
Base64 base64 = new Base64();
String str = "AAaaa我";
String result = base64.encodeToString(str.getBytes("UTF-8"));//编码
System.out.println(result);
byte[] decode = base64.decode(result.getBytes());//解码
System.out.println(new String(decode));
}
}
二、Hex编码和解码
import org.apache.commons.codec.DecoderException;
import org.apache.commons.codec.binary.Hex;
public class TestHex {
public static void main(String[] args) throws DecoderException, UnsupportedEncodingException {
String str = "test";
/**编码*/
String hexString = Hex.encodeHexString(str.getBytes("UTF-8"));//直接一步到位
System.out.println(hexString);
char[] encodeHex = Hex.encodeHex(str.getBytes(), true);//先转换成char数组,第二个参数意思是是否全部转换成小写
System.out.println(new String(encodeHex));
/**解码*/
byte[] decodeHex = Hex.decodeHex(encodeHex);//char数组型的
System.out.println(new String(decodeHex));
byte[] decodeHex2 = Hex.decodeHex(hexString.toCharArray());//字符串类型的,该方法要求传入的是char[]
System.out.println(new String(decodeHex2));
}
}
三、MD5加密(MD5是不可逆算法,只能加密)
import java.io.UnsupportedEncodingException;
import org.apache.commons.codec.digest.DigestUtils;
public class TestMD5 {
public static void main(String[] args) throws UnsupportedEncodingException {
String str = "test";
String md5 = DigestUtils.md5Hex(str.getBytes("UTF-8"));
System.out.println(md5);
}
}
四、SHA加密
import java.io.UnsupportedEncodingException;
import org.apache.commons.codec.digest.DigestUtils;
public class TestSHA {
public static void main(String[] args) throws UnsupportedEncodingException {
String str = "test中国";
String sha1Hex = DigestUtils.sha1Hex(str.getBytes("UTF-8"));
System.out.println(sha1Hex);
}
}
五、Metaphone和Soundex
Metaphone 建立出相同的key给发音相似的单字, 比 Soundex 还要准确, 但是 Metaphone 没有固定长度, Soundex 则是固定第一个英文字加上3个数字. 这通常是用在类似音比对, 也可以用在 MP3 的软件开发
metaphone() 比 soundex() 函数更精确,因为 metaphone() 了解基本的英语发音规则
import org.apache.commons.codec.language.Metaphone;
import org.apache.commons.codec.language.RefinedSoundex;
import org.apache.commons.codec.language.Soundex;
public class TestMetaphoneAndSoundex {
public static void main(String[] args) {
String str = "testgggggg";
/**Metaphone没有固定长度*/
Metaphone metaphone = new Metaphone();
String metaphoneEncode = metaphone.encode(str);
System.out.println(metaphoneEncode);
/**RefinedSoundex*/
RefinedSoundex refinedSoundex = new RefinedSoundex();
String refinedSoundexEncode = refinedSoundex.encode(str);
System.out.println(refinedSoundexEncode);
/**Soundex固定第一个英文字加上3个数字*/
Soundex soundex = new Soundex();
String soundexEncode = soundex.encode(str);
System.out.println(soundexEncode);
}
}
六、URLCodec
import org.apache.commons.codec.DecoderException;
import org.apache.commons.codec.EncoderException;
import org.apache.commons.codec.net.URLCodec;
public class TestURLCodec {
public static void main(String[] args) throws EncoderException, DecoderException {
String url = "http://baidu.com?name=你好";
URLCodec codec = new URLCodec();
String encode = codec.encode(url);
System.out.println(encode);
String decode = codec.decode(encode);
System.out.println(decode);
}
}
除了这些还有很多算法比如HMAC等,大家可以根据需要选取,commons-codec-1.10.jar就是一个加密解码相关的jar包
160705、总结:commons-codec.jar中常用方法的更多相关文章
- Apache Commons Codec 编码解码
Apache Commons Codec jar包官方下载地址 下载解压后把commons-codec-1.9.jar 放到lib中 关于SHA1算法的介绍可以参看Wiki:http://en.wik ...
- 【报错】引入jar包import org.apache.commons.codec.digest.DigestUtils 报错,jar不存在
import org.apache.commons.codec.digest.DigestUtils报错.缺少jar maven引用jar包地址: <!-- https://mvnreposit ...
- Handler processing failed; nested exception is java.lang.NoSuchMethodError: org.apache.commons.codec.digest.DigestUtils.sha1Hex(Ljava/lang/String;)Ljava/lang/String;
异常:Handler processing failed; nested exception is java.lang.NoSuchMethodError: org.apache.commons.co ...
- java 调用apache.commons.codec的包简单实现MD5加密
转自:https://blog.csdn.net/mmd1234520/article/details/70210002/ import java.security.MessageDigest; im ...
- ANDROID : java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.encodeBase64String in android
Andriod系统包中现在已经自带加密函数,如果用apache的codec包则会报以上错误,用android.util.Base64以下方法代替org.apache.commons.codec.bin ...
- Commons Codec基本使用(转载)
在实际的应用中,我们经常需要对字符串进行编解码,Apache Commons家族中的Commons Codec就提供了一些公共的编解码实现,比如Base64, Hex, MD5,Phonetic an ...
- commons-lang3-3.2.jar中的常用工具类的使用
这个包中的很多工具类可以简化我们的操作,在这里简单的研究其中的几个工具类的使用. 1.StringUtils工具类 可以判断是否是空串,是否为null,默认值设置等操作: /** * StringUt ...
- Apache Commons Codec 与消息摘要算法(hash算法)
首先我们要明白 Codec 是什么含义.它是 Coder + decoder = Codec,也就是编码器解码器.即是编码器,也是解码器. 官网地址:http://commons.apache.org ...
- org.apache.commons.lang.StringUtils中常用的方法
org.apache.commons.lang.StringUtils中常用的方法,这里主要列举String中没有,且比较有用的方法: 1. 检查字符串是否为空: static boolean isB ...
随机推荐
- Docker运行报Cannot connect to the Docker daemon错误
核心问题所在:权限不足 操作docker命令提示:Cannot connect to the Docker daemon 请切换管理员权限,root权限,root安装的一般的用户访问会存在此问题.
- 使用Python SDK管理Azure Load Balancer
概述 下面将演示如何使用Python SDK管理中国区Azure Load balancer.关于Azure负载均衡器的详细功能介绍,请参考官方文档. Code Sample import os fr ...
- Ubuntu13.04使用Jlink和ST-Link V2烧写STM32F1x和STM32F4x
近期做研究openpilot和crazyflie2.0,都须要在Linux进行代码的编写和烧录,所以研究了下Linux下如何使用Jlink,还有开源的支持多个仿真器的openocd,可是困难重重.总是 ...
- DOS命令 bat-call的用法
call 从批处理程序调用另一个批处理程序 call有几种用法 第一种用法,也就是最常用的一种,调用另一个批处理,在被调用的批处理执行完后在执行call下面的命令.如: @echo off call ...
- [Android] 通过Menu实现图片怀旧、浮雕、模糊、光照和素描效果
因为随手拍项目想做成类似于美图秀秀那种底部有一排Menu实现不同效果的功能,这里先简介怎样通过Menu实现打开相冊中的图片.怀旧效果.浮雕效果.光照效果和素描效果.后面可能会讲述怎样通过Pop ...
- ajax请求的data数据格式
ajax提交data类型 一.问题来源 今天使用ajax时,发现get传data时,传递json字符串时传不过去参数,所以做了一些实验测试ajax的get和post的传递data时的不同. 二.概念 ...
- 解决/usr/bin/ld: cannot find -lssl
一般情况下,-lssl表示要寻找库 libssl.so, 而上面的错误表示ld找不到这个库,一般情况下,原因是系统中没有安装这个库,只要安装就好了. 可以先使用sudo apt-cache searc ...
- 搭建hadoop集群,
这个教程是2.4.1的 ,但是亲测对于2.6.5,是可以用的,对2.5.4应该也是支持的 1.准备Linux环境 1.0先将虚拟机的网络模式选为NAT 1.1修改主机名 vi /etc/sysconf ...
- git版本管理之git-ssh 配置和使用
1.设置用户名和邮箱 $ git config --global user.name "gsx-gh" $ git config --global user.email " ...
- (转)Python爬虫学习笔记(2):Python正则表达式指南
以下内容转自CNBLOG:http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html 1. 正则表达式基础 1.1. 简单介绍 正则表达式并 ...