Java tutorial
/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package cn.crawin.msg.gateway.http; import org.apache.commons.codec.binary.Base64; import cn.crawin.msg.gateway.Constants; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** * ?? */ public class MessageDigestUtil { /** * MD5??Base64??? * * @param str * @return */ public static String base64AndMD5(String str) { if (str == null) { throw new IllegalArgumentException("inStr can not be null"); } return base64AndMD5(toBytes(str)); } /** * MD5??Base64??? * * @return */ public static String base64AndMD5(byte[] bytes) { if (bytes == null) { throw new IllegalArgumentException("bytes can not be null"); } try { final MessageDigest md = MessageDigest.getInstance("MD5"); md.reset(); md.update(bytes); final Base64 base64 = new Base64(); final byte[] enbytes = base64.encode(md.digest()); return new String(enbytes); } catch (final NoSuchAlgorithmException e) { throw new IllegalArgumentException("unknown algorithm MD5"); } } /** * UTF-8??ISO-9959-1 * * @param str * @return */ public static String utf8ToIso88591(String str) { if (str == null) { return str; } try { return new String(str.getBytes("UTF-8"), "ISO-8859-1"); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e.getMessage(), e); } } /** * ISO-9959-1??UTF-8 * * @param str * @return */ public static String iso88591ToUtf8(String str) { if (str == null) { return str; } try { return new String(str.getBytes("ISO-8859-1"), "UTF-8"); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e.getMessage(), e); } } /** * String? * * @param str * @return */ private static byte[] toBytes(final String str) { if (str == null) { return null; } try { return str.getBytes(Constants.ENCODING); } catch (final UnsupportedEncodingException e) { throw new RuntimeException(e.getMessage(), e); } } }