日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 密码加密

發布時間:2024/4/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 密码加密 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前,自己嘗試搭建一個服務器,服務器搭好后,自己希望在app上加一個登陸和注冊的功能。其實就是app通過POST請求把用戶輸入的用戶名和密碼發送給服務器,然后,服務器對數據庫進行讀取,和用戶的數據進行比較,然后返回結果。

其實,登陸功能基本了,可是給組長看的時候,它說密碼的傳遞應該是要加密的,不然別人一抓包,不就知道用戶的密碼了。所有到網上查了一些資料,最后找到了一些加密的代碼。


1.采用異或的代碼進行加密

public static String encodeSimple(String message){String password=message;//要加密或者解密的字符串 char[]array=password.toCharArray();//獲取字符數組 for(int i=0;i<array.length;i++)//遍歷字符數組 {array[i]=(char)(array[i] ^ aaaaaaaaaaaa);//對每個數組元素進行異或運算,異或的值可以自己選擇 }return new String(array); }

這種加密比較簡單,只是把加密的字符串與我們所指定的字符串進行異或運算,便得到加密的數據。解密也十分簡單,把加密過的數據與之前指定的字符串再進行一次異或運算就可以了。


2.采用android自帶的MD5加密

什么是MD5加密?

? ? ?MD5英文全稱“Message-Digest Algorithm 5”,翻譯過來是“消息摘要算法5”,由MD2、MD3、MD4演變過來的,是一種單向加密算法,是不可逆的一種的加密方式。

?

MD5加密有哪些特點?

  • 壓縮性:任意長度的數據,算出的MD5值長度都是固定的。

  • 容易計算:從原數據計算出MD5值很容易。

  • 抗修改性:對原數據進行任何改動,哪怕只修改1個字節,所得到的MD5值都有很大區別。

  • 強抗碰撞:已知原數據和其MD5值,想找到一個具有相同MD5值的數據(即偽造數據)是非常困難的。

這些是我在網上找的關于MD5加密的資料,但是我們必須知道,可以用MD5加密數據,卻不可能從MD5獲得原數據,所以MD5加密不可逆。

public static String encode(String password) {// MessageDigest專門用于加密的類 try {MessageDigest messageDigest = MessageDigest.getInstance("MD5"); messageDigest.reset(); messageDigest.update(password.getBytes("UTF-8")); byte[] result = messageDigest.digest(); // 得到加密后的字符組數 StringBuffer sb = new StringBuffer(); for (byte b : result) {int num = b & 0xff; // 這里的是為了將原本是byte型的數向上提升為int型,從而使得原本的負數轉為了正數 String hex = Integer.toHexString(num); //這里將int型的數直接轉換成16進制表示 //16進制可能是為1的長度,這種情況下,需要在前面補0 if (hex.length() == 1) {sb.append(0); }sb.append(hex); }return sb.toString(); } catch (NoSuchAlgorithmException e) {e.printStackTrace(); } catch (UnsupportedEncodingException e) {e.printStackTrace(); }return null; }

這就是具體的MD5加密代碼,網上很多,不做具體講解。但是實現從客戶端傳遞密碼時,可以生成一個隨機數,與密碼一起加密,然后把隨機數與加密的密碼一起發送給服務器,服務器也把客戶端傳遞的隨機數與數據庫的密碼進行MD5加密,對比客戶端的加密值,如果相等,就認為密碼正確。不過,隨機數最好也進行加密,不過不能用MD5加密,因為到服務器后需要解密,所以必須有加密和解密的代碼。

這就是密碼的加密了。




總結

以上是生活随笔為你收集整理的android 密码加密的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。