Encryption 当涉及不同的平台时,关于加密的最佳实践是什么?
问题是,在处理不同平台的加密和解密时,最可取的方法是什么 据我所知,当一个人想要处理这样的场景时,他/她必须考虑某些事情。比如说Encryption 当涉及不同的平台时,关于加密的最佳实践是什么?,encryption,cryptography,Encryption,Cryptography,问题是,在处理不同平台的加密和解密时,最可取的方法是什么 据我所知,当一个人想要处理这样的场景时,他/她必须考虑某些事情。比如说 加密/解密算法 填充图案 两侧字符编码 密码密钥和块大小 当然,一个人想要使用的加密/解密算法在两边都必须是相同的,我想我可以对剩下的三件事说同样的话 请建议我在处理以下或类似场景时应遵循的步骤 c语言中的加密和java语言中的解密 php中的加密和java中的解密 我会添加字节顺序(数字的小端和大端),但是,只要选择相同的算法(和参数)和数据格式,在一个平台上加密的
我会添加字节顺序(数字的小端和大端),但是,只要选择相同的算法(和参数)和数据格式,在一个平台上加密的内容应该可以在另一个平台上解密,反之亦然。例如,今天SSL就是这样工作的。良好互操作性的一个非常重要的方面是标准遵从性 好的密码标准伴随着测试向量而来。如果两端实现了相同的规范,并且相关的测试用例已经过验证,那么它们成功地相互对话的可能性就大得多 例如,假设您需要从密码派生AES密钥。如果您使用openssl,您可能会尝试使用公共的
EVP\u BytesToKey
函数。不幸的是,这不是一个标准的派生算法,如果在另一端也没有openssl,您将发现自己陷入麻烦。使用PBKDF2这样的标准更好,因为大多数库都实现了一个清晰、众所周知且广泛使用的规范()
不幸的是,加密标准往往只关注原语,而且常常需要将几个原语嫁接在一起。“嫁接”可能被证明是互操作性分崩离析的领域。出于这个原因,我建议使用尽可能广泛的标准化算法,即使代价是一些额外的复杂性
例如,如果您想要加密某些内容,最好选择标准的身份验证模式,如CCM(在中定义)。您可以一次性获得以下方面的互操作性:
- 加密
- 认证
- 填充物
- 静脉注射
PHP很棘手,它要么依赖openssl包装器,要么依赖可怕的mcrypt库。Hi Puru,欢迎来到Stack Overflow,请编辑您的问题,以便突出显示实际问题。简单地要求人们分享知识会引发讨论,这会使你的问题面临被社区关闭的危险,因为这是没有建设性的。使用此链接修改您的帖子,并就您不了解的内容提出更具体的问题。祝你好运!:)谢谢你。我已经按照您的建议进行了编辑。您想要对称加密还是非对称加密(例如RSA)?前者处理字节(因此大端/小端对密文不重要。另一个使用整数)。