對稱加密(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.------