adroid之加密算法md5

同一个字符在不同的编码下会被编成不同长度的编码,

比如:ACSII,每个字符对应一个字节,实际上只使用了7位,从00h-7Fh。只能表达128个字符。

GB2312,中文的一种编码,每个字符使用两个字节表示。

UTF-8, 可以表达所有unicode字符,每个字符可以用1-3个字节表示。

UTF-16, 可以表达所有unicode字符,每个字符可以用1-2个16位整数表示。

UTF-32, 可以表达所有unicode字符,每个字符可以用1个32位整数表示。


================md5===============

吧原字符串转换成byte数组,用数组中每一个byte去和11111111二进制做与运算(byte & 11111111)得到int类型的值;int类型转换成16进制并返回string类型;不满8个二进制位就不全;

//加密

    public static String  mmd5(String pwd) throws NoSuchAlgorithmException {
        //得到一个信息摘要器
        MessageDigest digest=MessageDigest.getInstance("md5");

        String password="12345";
        byte[] result=digest.digest(password.getBytes());
        StringBuffer buffer=new StringBuffer();
        //把每一个byte和0xff做与运算
        for(byte b:result){
            //与运算
            int num=b&0xff;
            String str=Integer.toHexString(num);
            if(str.length()==1){
                buffer.append("0");
            }
            buffer.append(str);
        }
        return buffer.toString();
    }

阅读更多
个人分类: android
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭