到目前为止,我认为如果我有RSA加密数据,由于常用的算法,这些数据很容易在大多数平台(.net,java,pc,unix ..)之间交换。
通过调查我的另一个questions,我现在感到困惑。我甚至发现了MS实现之间的差异(某些提供者反转了生成的字节数组)。此外,填充似乎不遵循标准化。
如果RSA编码的数据相对简单可交换(有一些明显的陷阱)或者这是一个令人头痛的问题,那么具有跨平台加密技术经验的人是否可以发表声明?
答案 0 :(得分:3)
请注意,RSA加密通常不会单独使用,而是in combination with a symmetric encryption algorithm。 因此,为了确保可互操作,您需要确保:
答案 1 :(得分:2)
您的问题的简单答案是否定的,加密算法本身并未指定如何在实现之间存储或传输字节以确保互操作性。为此,您必须使用标准格式或协议,将这些指令提供到位级别。例如,在Paulo回答他谈到PKCS#7和PKCS#1。这些依赖于ASN.1的DER编码规则,这些规则准确地指定了如何将RSA的大整数片段转换为不重要的字节序列并再次返回。