栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

iOS上不同的填充类型之间有什么区别?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

iOS上不同的填充类型之间有什么区别?

PKCS#1包含两个用于与RSA签名的“填充”,一个“新”(称为PSS,在版本2.1中添加)和一个“旧”(称为“ v1.5”),因为它已经在PKCS#1.5版中1)。我们正在谈论v1.5填充。

对某些数据进行签名后,首先使用合适的哈希函数(例如SHA-1)对其进行哈希处理,然后将哈希值(如果使用SHA-1,则为20字节)包装到两个连续的层中:

哈希值被编码到基于ASN.1的结构中,该结构还指定使用哪个哈希函数。实际上,如果哈希值是H,则第一个换行将导致字节序列A ||。H,其中| |是连接,而“ A ”是特定于哈希函数的标头(通常为15到20个字节)。

“ A || H ”扩展了一些额外的字节:

0x00 0x01 0xFF 0xFF … 0xFF 0x00 || A || H

将值0xFF的字节数调整为总大小等于RSA模数的大小(即,对于1024位RSA密钥为128字节)。

第二步是PKCS#1所谓的“类型1填充”。

kSecPaddingPKCS1
表示该函数仅执行第二步:假定输入数据已经是正确的“ A || H ”。请注意,SSL / TLS(版本1.1之前的版本)使用要求此模式的签名变体(没有“ A ”,但有两个哈希函数)。使用kSecPaddingPKCS1SHA1,签名函数期望将哈希值作为输入,并添加“ A ”标头本身。

对于可以由第三方实现验证的正确的,符合标准的签名,必须在某个时候添加“ A ”标头。您可以自己添加它并使用

kSecPaddingPKCS1
,或者使用
kSecpaddingPKCS1SHA1
并让引擎自己添加它,这可能不太容易出错。

(从2011年开始,不建议使用SHA-1;您最好切换到SHA-256或SHA-512。此外,您尝试使用的API似乎是低级的,整个事情都令人怀疑。似乎您想实现自己的加密协议,而不是使用现有的库或框架。)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/369190.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号