●補充說明--加密

(一)HASH(雜湊):不能解密,不能反算,單向加密,用在數位簽章和密碼雜湊
1.MD5
2.SHA1
 
(二)明文,雙向的,可以解密
1.RSA:非對稱式加密法(速度慢)
=>用A(公)金鑰加密,只能用B(私)金鑰解密,用B金鑰加密,只能用A金鑰解密
=>先用公鑰加密,把公鑰和資料傳過去,私鑰留著,收到者再用私鑰解密
=>SSL加密:先建立RSA加密連線,公鑰傳過去,對方把DES加密金鑰丟回,再用私鑰解開得到對方的DES加密金鑰
=>因為SSL加密駭客會用騙公鑰的做法,假造公鑰攔截丟過去在繼續後面傳輸動作,所以後來都把公鑰放在第三方公正機構(要收費),所以有些網站像是學校或是一些政府單會,會跳出簽章不可信任的訊息,因為沒有經費
 
2.DES對稱式加密法(速度快),建議專案使用
=>A金鑰加密,A金鑰解密

 

●程式說明--AES加密(代替DES,做完加密以後,還要把程式混亂,可以使用proguard反編譯工具)

1.先在build.gradle中加入compile 'com.scottyab:aescrypt:0.0.1'
2.程式如下:
public class MainActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
          
        String password = "password";
        String message = "TESTTESTTEST";
        try {
            //加密  
            String encryptedMsg = AESCrypt.encrypt(password, message);
            Log.d("ENC", encryptedMsg);
        }catch (GeneralSecurityException e){
            //handle error
        }
        // dT4GAbl/CWOzjueYjSB5WA==
        String encryptedMsg = "dT4GAbl/CWOzjueYjSB5WA==";
        try {
            //解密
            String messageAfterDecrypt = AESCrypt.decrypt(password, encryptedMsg);
            Log.d("ENC", messageAfterDecrypt);
        }catch (GeneralSecurityException e){
            //handle error - could be due to incorrect password or tampered encryptedMsg
        }
 
    }
}
=>加密後可以用LOG看到密碼為第一行,解密就可以得到原始輸入密碼
android aes加密
=>可以把加密後的密碼存在文字檔,要用再讀出來解密

 

●程式參考(GitHub):Android AES加密(使用com.scottyab:aescrypt)

arrow
arrow
    創作者介紹
    創作者 muchone 的頭像
    muchone

    簡單。生活。享受

    muchone 發表在 痞客邦 留言(0) 人氣()