• C#,Java,MD5加密对等实现


    1.c#实现

      
        /*
    *加密生成MD5
    */
    public static String MD5(string s)
            {
                char[] hexDigits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
                MD5 md5 = new MD5CryptoServiceProvider();
                byte[] inputBytes = System.Text.Encoding.Default.GetBytes(s);
                byte[] result = md5.ComputeHash(inputBytes);
                int j = result.Length;
                char[] str = new char[j * 2];
                int k = 0;
                for (int i = 0; i < j; i++)
                {
                    byte byte0 = result[i];
                    str[k++] = hexDigits[byte0 >> 4 & 0xf];
                    str[k++] = hexDigits[byte0 & 0xf];
                }
                return new String(str);
            } 

    2.Java实现

    public final class DefaultPasswordEncoder {
    
        private static final char[] HEX_DIGITS = {'0', '1', '2', '3', '4', '5', '6', '7', '8',
                                                    '9', 'a', 'b', 'c', 'd', 'e', 'f'};
    
      
        private final String encodingAlgorithm="MD5";
    
        private final String characterEncoding="UTF-8";
      
        /*
    *加密生成MD5
    */
    public String encode(final String password) { if (password == null) { return null; } try { MessageDigest messageDigest = MessageDigest .getInstance(this.encodingAlgorithm); if (StringUtils.hasText(this.characterEncoding)) { messageDigest.update(password.getBytes(this.characterEncoding)); } else { messageDigest.update(password.getBytes()); } final byte[] digest = messageDigest.digest(); return getFormattedText(digest); } catch (final NoSuchAlgorithmException e) { throw new SecurityException(e); } catch (final UnsupportedEncodingException e) { throw new RuntimeException(e); } } /** * Takes the raw bytes from the digest and formats them correct. * * @param bytes the raw bytes from the digest. * @return the formatted bytes. */ private String getFormattedText(final byte[] bytes) { final StringBuilder buf = new StringBuilder(bytes.length * 2); for (int j = 0; j < bytes.length; j++) { buf.append(HEX_DIGITS[(bytes[j] >> 4) & 0x0f]); buf.append(HEX_DIGITS[bytes[j] & 0x0f]); } return buf.toString(); } }
  • 相关阅读:
    帮忙看看怎么优化这个最长的sql
    12种不宜使用的Javascript语法
    走格子
    乘法逆元
    完美字符串
    全排列问题
    A. Sorting Railway Cars
    Prim
    矩阵取数
    套题T8&T9
  • 原文地址:https://www.cnblogs.com/oumi/p/9161507.html
Copyright © 2020-2023  润新知