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.------

上一篇下一篇

猜你喜欢

热点阅读