本文共 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/