PHP中公钥换行是否会改变密钥值?两款格式公钥是否一致?
关于公钥换行差异的问题解答
- 结论先行:这两组公钥完全是同一个密钥,换行处理不会改变密钥本身的价值,也不会影响加密/解密的功能表现。
为什么换行不影响?
这是因为我们常用的PEM格式(就是带-----BEGIN PUBLIC KEY-----和-----END PUBLIC KEY-----标记的格式),其中的换行只是为了符合RFC规范的可读性要求——规范里建议每64个字符换行一次,但实际密钥的核心是中间那段Base64编码的内容。
当加密库解析PEM格式的公钥时,会自动忽略首尾标记、所有的换行符,只提取中间连续的Base64字符串进行解码,还原出原始的公钥数据。你提供的两组公钥,去掉换行和首尾标记后,Base64字符串是完全一致的,所以解析出来的公钥数据毫无区别。
验证方式(无需私钥)
你自己也可以简单验证:
- 分别把两组公钥中的
-----BEGIN PUBLIC KEY-----、-----END PUBLIC KEY-----以及所有换行符删掉 - 对比处理后的字符串,会发现完全一模一样
这就足以证明它们是同一个公钥了。
内容的提问来源于stack exchange,提问作者黃皓哲
相关产品推荐
相关产品推荐

