adroid之加密演算法md5
阿新 • • 發佈:2018-12-31
同一個字元在不同的編碼下會被編成不同長度的編碼,
比如: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(); }