Android 对称加密(DES)和非对称加密(RSA)
2016-12-19 本文已影响797人
ahking17
对称加密(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.------