密码学介绍

为什么要学密码学

客户端发送给服务器的数据包中,有些参数不知道来源,可能是随机生成、标准算法加密、自写算法加密的。

安卓中,标准算法加密通常会出现在Java或者so(C/C++)中。

Java有现成的系统API调用,开发者想要使用这些API,必须使用固定的方法名去访问。这些API也就是我们需要学习的内容。

C/C++没有现成的系统API调用,开发者要么自己去实现算法,要么调用别人写好的模块,算法的运行不依赖系统API,因此方法名可以混淆。你要做的就是根据各种标准算法的特征,去识别是否标准算法。这些算法的特征,就是我们需要学习的内容。

密码学内容

消息摘要算法(散列函数、哈希函数)

  • MD5、SHA、MAC

对称加密算法:

  • DES、3DES、AES

非对称加密算法:

  • RSA

数字签名算法:

  • MD5withRSA、SH1withRSA、SHA256withRSA

任何语言里面对于标准算法的实现都应相同。