Scala MD5加密类

只是简单实现,很容易破解,暂时先拿来用记录下。

Scala 

object MD5 {
  def MD5Encode(input: String): String = {

    // 指定MD5加密算法
    val md5 = MessageDigest.getInstance("MD5")

    // 对输入数据进行加密,过程是先将字符串中转换成byte数组,然后进行随机哈希
    val encoded = md5.digest(input.getBytes)

    // 将加密后的每个字节转化成十六进制,一个字节8位,相当于2个16进制,不足2位的前面补0
    encoded.map("%02x".format(_)).mkString
  }

  def main(args: Array[String]): Unit = {
    println(MD5Encode("hello world"))    // 5eb63bbbe01eeed093cb22bb8f5acdc3
  }
}

Java

public class TestMD5 {

    /**
     * MD5加密
     * @param input
     * @return
     */
    public static String MD5Encode( String input) {
        try {
            // 指定MD5加密算法
            MessageDigest md5 = MessageDigest.getInstance("MD5");

            // 将字符串中转换成byte数组,并更新到MD5
            md5.update(input.getBytes());

            // 对输入数据进行随机哈希加密
            byte[] encoded = md5.digest();

            // 转换为十六进制字符串
            return getHex(encoded);

        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 转换为十六进制字符串
     * 将加密后的每个字节转化成十六进制,一个字节8位,相当于2个16进制,不足2位的前面补0
     */
    private static String getHex(byte[] bytes){
        StringBuilder builder = new StringBuilder(bytes.length * 2);
        for (byte b: bytes) {
            builder.append(Integer.toHexString((b >> 4) & 0x0f));
            builder.append(Integer.toHexString(b & 0x0f ));
        }
        return builder.toString();
    }

    public static void main(String[] args) {
        System.out.println(MD5Encode("hello world"));
        // 5eb63bbbe01eeed093cb22bb8f5acdc3
    }
}

 

你可能感兴趣的:(Scala)