Android加密

MD5加密/SHA1加密

MD5消息摘要算法,一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输的完整性。

SHA1对于长度小于2^64位的消息,会产生一个160位的消息摘要。SHA-1摘要比MD5摘要长32 位,对强行攻击有更大的保护强度。在相同的硬件上,SHA-1的运行速度比MD5慢。

SHA家族的五个算法,分别是SHA-1、SHA-224、SHA-256、SHA-384,和SHA-512,由美国国家安全局(NSA)所设计,是美国的政府标准。后四者有时并称为SHA-2。SHA-1在许多安全协定中广为使用,包括TLS和SSL、PGP、SSH、S/MIME和IPsec,曾被视为是MD5的后继者。但SHA-1的安全性如今被密码学家严重质疑;虽然至今尚未出现对SHA-2有效的攻击,它的算法跟SHA-1基本上仍然相似;因此有些人开始发展其他替代的杂凑算法。

AES加密

高级加密标准(AES)是美国联邦政府采用的一种区块加密标准。为对称密钥加密算法。

CRC即循环冗余校验是数据通信领域中最常用的一种查错校验码,通过校验保证数据传输的正确性和完整性。其特征是信息字段和校验字段的长度可以任意选定。

Android中网络请求的加密
Http请求的body(Json数据的byte数组)是我们需要加密的部分。
第一步
在body数据前增加一个乱码,乱码和后台统一好,主要是用来混淆视听的,没有特别的意义,称为PRE。
第二步
中间的这部分就是我们实际需要的json数据,称为CONTENT。将CONTENT进行AES加密,秘钥是从后台定期获取的。
第三步
将前两步数据进行CRC校验,将校验码附在数据末尾。

后台收到数据先去掉CRC校验码和PRE,将CONTENT用后台当前的秘钥进行解密,将PRE和解密后的数据做CRC校验,校验值与客户端传来的校验值不同,说明解密错误,(有可能)客户端的秘钥需要更新。

RSA加密

RSA算法是一种非对称密码算法。对极大整数做因数分解的难度决定了RSA算法的可靠性。

SM4加密

SM4是中国政府采用的一种分组加密算法,是对称加密。分组长度与密钥长度均为128位。

扫描二维码关注公众号,回复: 4084857 查看本文章

猜你喜欢

转载自blog.csdn.net/weixin_33642281/article/details/83689684