四、Android安全机制之数据加密
来源:互联网 发布:芈十四知乎 编辑:程序博客网 时间:2024/05/22 02:30
1、MD5
MD5,全名Message Digest Algorithm 5 ,中文名为消息摘要算法第五版,一种不可逆的hash算法,常用于只需加密无需解密的数据上,比如用户密码,也常用来保证数据的完整性,因为数据被篡改后,其加密后的MD5也会随之改变(不考虑碰撞的情况下),对比篡改前的MD5可确定数据是否完整;
2、RSA
非对称加密算法,RSA的安全性依赖于大数的分解,公钥和私钥都是两个大素数(大于100的十进制位)的函数。公钥对数据进行加密后传输,接收方用私钥进行解密,而从一个公钥和密文推断出明文的难度等同于分解两个大素数的积。由于进行的都是大数计算,使得RSA最快的情况也比DES慢上100倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。一般来说只用于少量数据加密。
3、AES
对称加密算法,此加密方式最大的威胁在于密钥的保存和传输安全,所以一般采用随机动态密钥和非对称加密算法RSA协商密钥,Android客户端实现步骤如下:
①.客户端随机生成AES密钥;
②.利用RSA公钥加密AES密钥并传至服务端用对应私钥解密,至此,服务端确认了此次交互的AES密钥;
③.双方已确认了AES密钥,接下来客户端直接用这个密钥加密传输即可。
4、异或
常用的简单可逆数据加密方式,明文与密钥进行异或操作得到密文,密文与密钥进行一次异或操作则还原明文。
5、Https
Https是在Http基础上加入了TLS/SSL协议(TLS是SSL是升级版),负责身份验证(证书认证)、信息加密和完整性校验(数字摘要)的安全功能。
它们的区别如下:
1、https协议需要到ca申请证书,一般免费证书很少,需要交费,而自签名证书可用keytool生成,但需要客户端添加信任,否则会报SSLHandshakeException异常。
2、http是超文本传输协议,信息是明文传输,https 则是具有安全性的SSL/TSL加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL/TSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
证书内容及验证:
证书包含以下信息:申请者公钥、申请者的组织信息和个人信息、签发机构CA的信息、有效时间、证书序列号等信息的明文,同时包含一个签名;
这个签名的产生算法:首先,使用散列函数计算公开的明文信息的信息摘要,然后,采用CA的私钥对信息摘要进行加密,密文即签名。
客户端读取证书中的相关的明文信息,采用相同的散列函数计算得到信息摘要,然后,利用对应CA的公钥解密签名数据,对比证书的信息摘要,如果一致,则可以确认证书的合法性,即公钥合法;
总的来说,Https的一个比较概括的流程为如下三步:
- 四、Android安全机制之数据加密
- Android数据安全之MD5加密
- Android数据安全之DES加密
- Android数据安全之AES加密
- Android数据安全之异或加密
- Android数据安全之RSA加密(非对称加密)
- Android数据加密之SHA安全散列算法
- Android之安全机制
- Android之安全机制
- Android之安全机制
- Android之安全机制
- Android之安全机制
- Linux安全机制之文件加密解密
- android开发之绝对安全(四) android开发中的加密方法
- C#数据安全加密之AES
- iOS开发-数据安全之加密
- https为什么安全之数据加密
- Android安全机制之设备管理
- Collections.sort()方法的使用及Comparable和comparator的qubie
- 开发环境搭建-Spring Tool Suite安装
- 正交向量和子空间学习
- ROS包全攻略:消息vs服务;可执行vs插件
- 自己来写RPC框架—第一章
- 四、Android安全机制之数据加密
- 最全的常用正则表达式大全
- 用Python实现常见机器学习算法(三)
- 机器学习之-逻辑回归算法【人工智能工程师--AI转型必修课】
- skynet学习笔记项目搭建(mac环境)
- Cadence jiuINCISIVE v15.20.001 Linux
- 【Scikit-Learn 中文文档】处理文本数据
- jQuery事件:bind、delegate、on的区别
- Linux系统MySQL开启远程连接