基础
概念
DH密钥交换
AES对称加密
RSA非对称加密
Android加解密
开放加密库---OpenSSL
生成公钥:rsa -in rsa_private.pem -pubout -out rsa_public.pem
公钥短,私钥长
Http服务器搭建
安卓中记得多多使用自带线程池,不要每次都new Thread
ExecutorService service =Executors.newCachedThreadPool();
service.execute(new HttpThead(socket));
okHttp
密钥交换算法--DH
对称加密算法---AES
非对称加密--RSA
加解密
DH算法公式公钥与私钥
加解密技术分类:
哈希函数 : SHA256 、MD5
对称加密 : AES 、DES
非对称加密 : RSA 、ECC 、Elgamal
密钥交换 : DH 、ECDH
加密技术分类:
哈希函数:SHA256、MD5
对称加密:AES、DES
非对称加密:RSA、ECC、Elgamal
密钥交换:DH、ECDH
ByteBuffer 将字节数组转换成为int类型
ByteBuffer buffer = ByteBuffer.wrap(data);
buffer.getInt();
发起握手请求,
通过在header中添加特定标识字段,标记本次请求为握手请求,
完成握手请求后在header中在移除标识字段,使后续请求变为普通请求
串联各个模块,将加密应用到网络通信当中
整形数转换为字节数组:
ByteBuffer buffer = ByteBuffer.allocate(4);
buffer.putInt(data);
buffer.array();
MessageDigest.getInstance("SHA-256");//Android系统自带的类
将DH交换之后的双方相同的密钥,转换为AES密钥
DH运行演示
公钥计算公式
预置质数原根对