|
|
1
8
不应该使用Perl的三元组。它做了那么多奇怪的事情,你会很开心的。 第一个问题是Perl中的键是十六进制的,您需要将它们转换成二进制。用php试试这个,
结果是,
然后你必须用一种奇怪的方式填充它。我忘了细节。你很幸运有了这个样本(16个字符)。 |
|
|
2
5
ColdFusion的答案是: 第一个问题是您的密钥长度对于三重DES不正确。ZZ编码器正确地推断它需要用0填充到正确的长度。 下一步是需要将键转换为十六进制。要在CF中执行此操作,我们有:
最后一步是也不填充结果,因此我们需要在CF中的加密算法中指定这一点:
生成的完整代码:
结果:
|
|
|
3
4
我将为任何一个恰巧在CCbill升级上工作的人提供下面的代码(听起来像是原始帖子中提到的公司)。下面的php函数将匹配ccbill的3des/tripledes内部加密的输出,如本文所述: http://www.ccbill.com/cs/manuals/CCBill_Subscription_Upgrade_Users_Guide.pdf
|
|
|
4
2
哦,这很有趣!
你应该和一个加密专家谈谈,也许可以试试邮件列表openssl用户或者dev tech crypto@mozilla,除非有有用的人出现在这里。 |
|
|
5
2
ZZ编码员就在附近。对于Perl和PHP代码返回不同加密的原因,还有一些警告。 首先,如果有无效的十六进制字母(F后面的字母),请按照以下规则进行替换:
使用此方法,az98az98az98az98az98az98的键是a398a398a398a398a398a398000000000000000000(用零填充后)。 其次,要加密的文本应该用空格填充,这样字符数就可以被8整除。在这个例子中,username=test123可以被8整除,所以不需要填充它。但是,如果它是username=test12,那么最后需要一个空白。 以下PHP代码返回与Perl加密匹配的加密
|
|
|
6
2
花了我一个晚上的时间,但这就是@eric kigathi的解决方案在Ruby中的样子
不过,一定要小心。我不太确定+和/转换到底是什么。我猜是4和5,但我不能告诉你这是不是真的。 帽子尖到 http://opensourcetester.co.uk/2012/11/29/zeros-padding-3des-ruby-openssl/ 密码和注释。 |
|
|
7
1
ColdFusion的答案是缺少修改CCbill工作键(就像在Eric的答案中一样)。 我修改了Eric对Lucee代码的回答。把它带回与ACF兼容的代码(用单独的代码来改变replacenocase中的结构)不需要太多的工作。
|
|
|
8
0
crypt::tripledes有两个问题(或没有):
注意你的密码文本,如果它匹配到某个点,但结尾不同,那么你就有一个纯文本填充问题。否则,您可能会遇到密码短语问题、密码块模式问题(EBC、CBC等)。 http://www.tools4noobs.com/online_tools/encrypt/help_modes.php 或者算法问题。 因此,我在Perl中做的是能够匹配Java的密码文本(使用空字符填充):
希望这有帮助 |
|
|
Carsten · 使用最近的搜索模式更改文本块 1 年前 |
|
|
A.Ellett · 测试-t STDIN与-t<STDIN> 1 年前 |
|
|
con · 如何跳转到foreach迭代的特定点? 1 年前 |