编码和加密算法的使用

  • MD5:
  1. 不可逆,一般用于信息比对  
  2. MD5值长度固定为128bit
  3. 容易计算
  4. 抗修改性
  5. 抗强碰撞,非常难伪造

使用工具类获取字符串的md5值:

String strMd5 = MD5.md5("hello,中国");

       

比较两个文件是否相等:


String strFile1Md5 = MD5.getFileMD5(new File("/sdcard/download/aaa.jpg"));

String strFile2Md5 = MD5.getFileMD5(new File("/sdcard/download/aaa1.jpg"));


if (strFile1Md5.equals(strFile2Md5)){

    Log.d("qf","两个文件一致");

}

  • BASE64
  1. 准确来讲,它是一种编码方式,有些协议传输非ASCII编码的时候需要使用base64编码后才能传输
  2. 可逆的,很容易解码

public class BASE64Util {

    public static String encrypt(String strSrc){

        String strDes = null;


        //默认编码utf-8

        byte[] btMsg = Base64.encode(strSrc.getBytes(), Base64.DEFAULT);

        strDes = new String(btMsg);

        return strDes;


    }


    public static String decrypt(String strEncode){

        String strDes = null;


        strDes = new String(Base64.decode(strEncode.getBytes(),Base64.DEFAULT));

        return strDes;

    }

}



  • 对称加密——DES
  1. 真正的加密算法,带密钥,加密和解密使用相同的密钥
  2. 对称加密优点是算法公开、计算量小、加密速度快、加密效率高
  3. 双方都保存秘钥,其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担
  4. DES使用56位密钥,以现代计算能力,24小时内即可被破解。虽然如此,在某些简单应用中,我们还是可以使用DES加密算法    







  • 非对称加密--RSA

1、用RSA算法生成一对密钥,公钥发放给外部客户,私钥自己保管;有以下应用场景:

     【公钥加密、私钥解密】或者【私钥签名、公钥验证】

2、非对称加解密的理解:


  • 小明想秘密给小英发送消息
  • 小英手里有一个盒子(public key),这个盒子只有小英手里的钥匙(private key)才打得开
  • 小英把盒子送给小明(分发公钥)
  • 小明写好消息放进盒子里,锁上盒子(公钥加密)
  • 小明把盒子寄给小英(密文传输)
  • 小英用手里的钥匙打开盒子,得到小明的消息(私钥解密)
  • 假设小刚劫持了盒子,因为没有小英的钥匙,他也打不开























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值