博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
adroid之加密算法md5
阅读量:4288 次
发布时间:2019-05-27

本文共 974 字,大约阅读时间需要 3 分钟。

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

比如: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();    }

转载地址:http://jtmgi.baihongyu.com/

你可能感兴趣的文章
c++ 加载so动态库中的资源
查看>>
加解密 签名
查看>>
linux top 命令分析
查看>>
Linux vmstat命令详解
查看>>
linux pmap命令
查看>>
MySQL数据同步【双主热备】
查看>>
Mysql主从复制实践手册
查看>>
nginx配置正向代理支持HTTPS
查看>>
Perf -- Linux下的系统性能调优神器
查看>>
C++ 用libcurl库进行http通讯网络编程
查看>>
秒杀多线程第十篇 生产者消费者问题
查看>>
信号量与互斥锁
查看>>
linux 查看CPU个数,核数
查看>>
string 序列化
查看>>
va_start(),va_end()函数应用
查看>>
crontab命令
查看>>
State Threads——异步回调的线性实现
查看>>
va_start va_end
查看>>
共享内存,共享缓冲区 一对多
查看>>
无锁队列的实现
查看>>