基础工具---SHA1加密

来源:互联网 发布:知乎回答问题赚钱 编辑:程序博客网 时间:2024/05/16 01:36
private static final char[] HEX_DIGITS = {'0', '1', '2', '3', '4', '5',            '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};    /**     * Takes the raw bytes from the digest and formats them correct.     *     * @param bytes the raw bytes from the digest.     * @return the formatted bytes.     */    private static String getFormattedText(byte[] bytes) {        int len = bytes.length;        StringBuilder buf = new StringBuilder(len * 2);        // 把密文转换成十六进制的字符串形式        for (int j = 0; j < len; j++) {            buf.append(HEX_DIGITS[(bytes[j] >> 4) & 0x0f]);            buf.append(HEX_DIGITS[bytes[j] & 0x0f]);        }        return buf.toString();    }    public static String encode(String str) {        if (str == null) {            return null;        }        try {            MessageDigest messageDigest = MessageDigest.getInstance("SHA1");            messageDigest.update(str.getBytes());            return getFormattedText(messageDigest.digest());        } catch (Exception e) {            throw new RuntimeException(e);        }    }
原创粉丝点击