Blowfish ECB 암호화를 cipherMode 0, 출력 1과 함께 사용해야하는 클라이언트가 있습니다.이 문제를 해결하기 위해 노력했지만 막혔습니다. 코드를 수정하려면 어떻게해야합니까?Blowfish C# 구현의 ECB 암호화
알고리즘 : 여기
전체 클라이언트 명령입니다 복어 · 모드 : ECB · 패딩 : 우리는 ECB 모드를 사용하기 때문에 * 초기 벡터를 PKCS5Padding를하는 것은 불필요하다.예 · 키 암호화 : 3280 : 2fs5uhnjcnpxcpg9 일반 텍스트 → 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 모드] (https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Electronic_Codebook_.28ECB.29)에서 펭귄까지 스크롤하십시오. – zaph
Blowfish 클래스를 가져 오기 위해 가져 오는 것은 무엇입니까? 그리고 패딩을위한 설정을 보지 못했기 때문에, Blowfish 클래스가 들어있는 라이브러리의 doc이 사용한다고 말하는 기본값은 무엇입니까? –
결국 보안을 업데이트 할 때가되었습니다. AES는 15 년 동안 사용할 수 있었고, 클라이언트는 실제로 15 년을 기다리는 노력을해야합니다. 어리석은 일이었습니다. – zaph