md5算法,得到数据摘要!最常用!
1保存用户密码,在数据库里不能保存明码,不能让别人看到,服务器将密码用md5编码后存!!反向编码是40亿年,可以暴力破解,知道密码长度,生成所有可能的密码的字符,再生成数据摘要,再去对照密码
2校验数据的完整性,下载的程序时有个md5码,下载完的软件也可以生成md5码,如果一致,代表下载过程中没有丢掉一个字节,而且没有被植入木马程序
java中每个任何类型数据都有个摘要,前128位 16个字节 的长度的数据摘要
String s=“额外绯闻纷纷“
byte []md5=MessegeDiget.getInstance(“md5”).digest(s.getBytes()); 指定md5算法生成摘要
构建成字符串:不能直接构建new String 编码时gb2313 会乱码!!!
base64算法
需要用到base64编码算法:将三个字节24个进制位,转化为4个字节,每个字节装6位,在每个字节前面补两个0就好了。这时候最小数是00000000最大数00111111 {0-63}64个数,作为一个码表,比如:0代表a base64的码都是键盘上所见的明文字符。
任何数据经过base64编码后,都会转化成人眼看到的键盘上的字符
非常重要!!!网络数据传递 一般都需要先用base64编码再传输!
一段数据包括1数据开始符2数据体3数据结束符,如果不编码,数据体很可能存在数据结束符,会导致数据没有传完就结束了
需要对数据体进行base64编码,数据结束符 开始符是base64以外的字符
|
|