签名原理

一、HASH加密

将任意大小的数据通过散列算法变换成固定长度的字符,通常为32位的固定字符,又称hash值。特点:算法公开、不可逆、结果定长。常见的MD5加密。

二、非对称加密

公钥加密,私钥解密,加密过程需要经历很多计算,因此效率很低。明文->公钥->密文 密文->私钥->明文。
支付宝,微信等支付过程需要的签名也是这一原理实现。数字签名流程如下:

1609369-3cbdfae89df1bf9e.png
sign.png

三、iOS签名

为避免垃圾应用的安装,破坏应用生态,苹果采用更高级的加密,对应用进行双层代码签名。
1、首先在Mac端生成一对公私钥(xcode自动生成)为公钥M和私钥M;
2、苹果有一对固定的公私钥,私钥在苹果后台,公钥在每个iOS系统中,称公钥A私钥A;
3、把公钥M和开发者信息,上传到苹果后台(CSR文件),用苹果后台里的私钥A去签名公钥M,得到一个含有公钥M和签名的数据包,该包即为证书。

描述文件:包含证书、APPID、设备id、打包后用来证明我们的程序的安全性和合法性。如常用的测试包,需要添加测试人员的udid,苹果需要对其验证后,相应的设备才能安装。签名原理如图:

1609369-1975b2528592dfda.png
appsign.png

转载于:https://www.jianshu.com/p/67ac206a965b

猜你喜欢

转载自blog.csdn.net/weixin_33969116/article/details/91193449