Android 對稱加密(DES)和非對稱加密(RSA)

對稱加密(DES)

加密和解密數據都是使用同一個key,這方面的算法有DES。
http://www.cnblogs.com/tony-yang-flutter/p/Des.html
項目中提供了 DesUtils.java 工具類對加密解密操作進行了封裝, 方便使用.

用處: WeiboAccount.java 在保存用戶的微博信息到SharedPreferences時,
基于安全原則, 要對信息進行加密后再進行存儲.

public class DesUtils {

    /** 字符串默認鍵值     */
    private static String strDefaultKey = "com.?????.weibo.security.password.j3456l6720285945ff47ae58fdj69dj3?????";
    public DesUtils() {
        this(strDefaultKey);
    }


    public String encrypt(String strIn){
...
    }
    public String decrypt(String strIn) {
...
    }

}
public class WeiboAccount {
    public String mAccessToken;
    public String mExpiresIn;

    private DesUtils desUtils = new DesUtils();
    public void saveAuth() {
        SharedPreferences.Editor editor = this.mOauthPrefer.edit();

        editor.putString("access_token", desUtils.encrypt(this.mAccessToken));
        editor.putString("expires_in", desUtils.encrypt(this.mExpiresIn));

        PreferenceUtil.EditorCommit(editor);
    }

    private void initAuth() {
        String access_token = this.mOauthPrefer.getString("access_token", "");
        String expires_in = this.mOauthPrefer.getString("expires_in", "");
        mAccessToken = desUtils.decrypt(access_token);
        this.mExpiresIn = desUtils.decrypt(expires_in);

        AccessToken accessToken = new AccessToken(this.mAccessToken, CONSUMER_SECRET);
        accessToken.setExpiresTime(this.mExpiresIn);
        Weibo.getInstance().setAccessToken(accessToken);
    }

}
非對稱加密(RSA)

加密和解密使用不同的key。
解密者擁有私鑰,將公鑰發布給加密者用于對明文信息進行加密.
核心: 公鑰用于加密,私鑰用于解密。

KeyPairGenerator keyPairGen = null;
keyPairGen = KeyPairGenerator.getInstance("RSA");

目前項目中沒有使用非對稱加密.

ssh 和 ssl都是典型的非對稱加密。
http://www.xuebuyuan.com/2141598.html

-----DONE.------

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容