Android-加密总结+支付集成问题


> 加密算法总结


> 银联支付


> 支付宝:要求需要公司账号


> 微信支付:微信更新测试服务器,Demo,丢失聊天记录(安全码策略:keystore)


> 扩展:混合开发(android+H5,通信三种方式)


* 1.js主动调用android
* 2.android主动调用js
* 3.js callback回调式调用android


### 01.数字签名应用实战-签名


> 对登录信息(用户名、密码、时间戳 签名)


InputStream ins = null;
String usrename = "heima104";
String password = "123456";
System.out.println(System.currentTimeMillis());
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("username="+usrename)
.append("&password="+MD5Utils.md5(password))
.append("&timestamp="+System.currentTimeMillis());

String input = stringBuilder.toString();

String sign = SignatureUtils.sign(input);

try {
String url = "http://120.77.241.119/EncryptServer/login_v5?"+input+"&sign="+sign;
URL url2 = new URL(url);
HttpURLConnection conn = (HttpURLConnection) url2.openConnection();
System.out.println(url2.toURI().toString());
ins = conn.getInputStream();
String result = IoUtils.convertStreamToString(ins);
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
} finally {
IoUtils.close(ins);
}


### 02.数字签名应用实战-避免抓包


> 对提交参数md5:如果用户没有登录过,存储到数据库;如果登录过不让登录,该url已经失效


String url = "http://120.77.241.119/EncryptServer/login_v6?"+input+"&sign="+sign;
URL url2 = new URL(url);
String md5 = MD5Utils.md5(input+"&sign="+sign);
System.out.println(md5);
HttpURLConnection conn = (HttpURLConnection) url2.openConnection();
System.out.println(url2.toURI().toString());
ins = conn.getInputStream();
String result = IoUtils.convertStreamToString(ins);


> 手机验证码


### 03.加密算法总结


> 对称加密(DES、AES):

* 1.优先使用DES,如果提高安全度使用AES
* 2.可逆:开发中只要可逆都可以选择对称加密,缓存联系人信息

> 非对称RSA


* 1.可逆:公钥加密私钥解密;私钥加密公钥解密
* 2.秘钥对:公钥和私钥,不能手动指定,必须由系统生成
* 3.加密速度慢:不能加密大文件
* 4.分段加密:每次最大加密长度117字节
* 5.分段解密:每次最大解密长度128字节
* 应用场景:一般很少使用RSA加密和解密,用的最多的是它的数字签名


> 消息摘要:


* md5:16个字节,转成16进制32个字节
* sha1:20个字节,转成16进制40个字节
* sha256:32个字节,转成16进制64个字节
* 应用:md5使用最多
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值