Encryption 通过PBEWithMD5和DES加密生成的CR/LF?

Encryption 通过PBEWithMD5和DES加密生成的CR/LF?,encryption,encoding,base64,Encryption,Encoding,Base64,PBEWithMD5和DES提供的加密字符串以及随后编码的Base64是否可以包含CR和/或LF字符?Base64仅为可打印字符。然而,当它被用作电子邮件的MIME类型时,它被分成几行,每行之间用CR-LF分隔。Base64只是可打印的字符。然而,当它被用作电子邮件的MIME类型时,它会被分成几行,每行之间用CR-LF分隔。PBEWithMD5AndDES返回二进制数据。PBE加密在中定义,本标准没有专用的base 64编码方案。因此,问题变成了需要对哪个系统的二进制数据进行base64编码。维

PBEWithMD5和DES提供的加密字符串以及随后编码的Base64是否可以包含CR和/或LF字符?

Base64仅为可打印字符。然而,当它被用作电子邮件的MIME类型时,它被分成几行,每行之间用CR-LF分隔。

Base64只是可打印的字符。然而,当它被用作电子邮件的MIME类型时,它会被分成几行,每行之间用CR-LF分隔。

PBEWithMD5AndDES返回二进制数据。PBE加密在中定义,本标准没有专用的base 64编码方案。因此,问题变成了需要对哪个系统的二进制数据进行base64编码。维基百科有一个解释各种形式的例子

您可能会遇到一个返回Base 64的PBE实现,而该实现没有提到使用了上述哪种方案。在这种情况下,您需要找出所使用的方案。我建议搜索它,询问社区,查看源代码,或者如果全部失败,在输出上创建一组测试

幸运的是,如果您正在解码base 64,并且忽略了所有的空白,那么您是相当安全的。请注意,一些实现忽略了填充,因此在解码之前添加它(如果适用)


如果您自己执行编码base 64,我强烈建议不要输出任何空格,只使用默认字母表(带有
'+'
'/'
符号),并在需要时始终执行填充。之后,您可以始终拆分结果并替换任何非标准字符(当然,特别是
'+'
'/'
符号),或删除填充。

PBEWithMD5AndDES返回二进制数据。PBE加密在中定义,本标准没有专用的base 64编码方案。因此,问题变成了需要对哪个系统的二进制数据进行base64编码。维基百科有一个解释各种形式的例子

您可能会遇到一个返回Base 64的PBE实现,而该实现没有提到使用了上述哪种方案。在这种情况下,您需要找出所使用的方案。我建议搜索它,询问社区,查看源代码,或者如果全部失败,在输出上创建一组测试

幸运的是,如果您正在解码base 64,并且忽略了所有的空白,那么您是相当安全的。请注意,一些实现忽略了填充,因此在解码之前添加它(如果适用)


如果您自己执行编码base 64,我强烈建议不要输出任何空格,只使用默认字母表(带有
'+'
'/'
符号),并在需要时始终执行填充。在此之后,您可以始终拆分结果并替换任何非标准字符(当然,特别是
'+'
'/'
符号),或者删除填充。

我使用的是java with Andorid SDK。我发现命令:

String s = Base64.encodeToString(enc, Base64.DEFAULT);
做了线包装。它将LF字符放入输出字符串中

我发现:

String s = Base64.encodeToString(enc, Base64.NO_WRAP);

没有将LF字符放入输出字符串。

我正在使用java和Android SDK。我发现命令:

String s = Base64.encodeToString(enc, Base64.DEFAULT);
做了线包装。它将LF字符放入输出字符串中

我发现:

String s = Base64.encodeToString(enc, Base64.NO_WRAP);

没有将LF字符放入输出字符串。

您的答案当然正确(so+1),但我创建了一个更深入问题的较长答案。您的答案当然正确(so+1),但我创建了一个更深入问题的较长答案。问题Xarph没有错,但请指定具体的语言/API,包括尽可能多的标签,并在问题正文的某个地方使用问号。问题Xarph没有错,但请指定具体的语言/API,包括尽可能多的标签,并在问题正文的某个地方使用问号。