【发布时间】:2017-04-14 01:23:16
【问题描述】:
我有一个客户需要我们使用 Blowfish ECB 加密和 cipherMode 0,输出 1。我试图解决这个问题,但我卡住了。如何修复我的代码?
以下是完整的客户说明:
算法: 河豚 ・模式: ECB ・衬垫: PKCS5Padding *我们使用ECB模式,不需要初始向量。
示例 ・加密密钥: 2fs5uhnjcnpxcpg9 → 纯文本: 3280:99:20120201123050 → 密文: daa745f1901364c0bd42b9658db3db96336758cd34b2a576 * 请保留 16 位十六进制字符的密文。 * 请生成没有“salt”的密文。
我需要用 C# 编写这个。这是我所做的,但它似乎不起作用:
string member_id = "3280";
string panelType = "99";
string RandomString = "20120201123050";
string encryptionKey = "2fs5uhnjcnpxcpg9";
string cryptstr = member_id + ":" + panelType + ":" + RandomString;
string plainText = cryptstr;
BlowFish b = new BlowFish(encryptionKey);
string cipherText = b.Encrypt_ECB("3280:99:20120201123050");
结果不是 daa745f1901364c0bd42b9658db3db96336758cd34b2a576。我哪里做错了?
【问题讨论】:
-
哇,这是最糟糕的安全性!即使是 Blowfish 的作者也不再使用它,现在他使用 AES。不要使用 ECB 模式,它不安全,请参阅ECB mode,向下滚动到 Penguin。
-
你要导入什么来获得 Blowfish 类?而且由于我没有看到您为填充设置任何内容,包含该 Blowfish 类的库的文档说它正在使用的默认值是什么?
-
终于到了更新安全的时候了,AES 已经有 15 年了,客户真的应该努力,再等 15 年太可笑了。
标签: c# encryption blowfish