将任意大小的数据经过散列算法变换成固定长度的字符,一般为32
位的固定字符,又称hash
值。特色:算法公开、不可逆、结果定长。常见的MD5
加密。算法
公钥加密,私钥解密,加密过程须要经历不少计算,所以效率很低。明文->公钥->密文 密文->私钥->明文
。 支付宝,微信等支付过程须要的签名也是这一原理实现。数字签名流程以下:安全
为避免垃圾应用的安装,破坏应用生态,苹果采用更高级的加密,对应用进行双层代码签名。 一、首先在Mac
端生成一对公私钥(Xcode
自动生成)为公钥M
和私钥M
; 二、苹果有一对固定的公私钥,私钥在苹果后台,公钥在每一个iOS
系统中,称公钥A
,私钥A
; 三、把公钥M和开发者信息,上传到苹果后台(CSR文件
),用苹果后台里的私钥A
去签名公钥M
,获得一个含有公钥M
和签名的数据包
,该包即为证书
。微信
描述文件:包含证书、APPID、设备id、打包后用来证实咱们的程序的安全性和合法性。如经常使用的测试包,须要添加测试人员的udid
,苹果须要对其验证后,相应的设备才能安装。签名原理如图:app