문제

C#에는 Blowfish가없는 것 같습니다. 이 하나그래서 나는 그것을 외부로 사용하기로 결정했고 다시 작동하지 않으면 전체 블로우 피쉬를 c#로 번역합니다. 그러나 먼저 외부로 사용하려고 노력할 것입니다.

당신은 C ++ 블로우 피쉬 그리고 함수 매개 변수를 변경 해야하는지 알려주세요 (일부는 C#에 포함되지 않은 LPBYTE입니다).

또한 외부 DLL으로 사용하는 방법을 알려 주면 감사 할 것입니다 (이미 DLL으로 컴파일되어 있음). C ++의 함수 매개 변수는 저를 실망시킵니다.

편집하다:초기화, 인코딩 및 디코딩 만 호출해야합니다.

미리 감사드립니다!

도움이 되었습니까?

해결책

이전 프로젝트에서 이것과 비슷한 문제가있었습니다. C ++ 코드를 살펴보면 이전 게시물에서 의심 한대로 ECB를 사용하고 있습니다. blowfish.net (Arkain 's 제안)을 사용하여 다른 결과를 얻는 이유를 본다고 생각합니다. C ++ 코드는 입력을 두 개의 dwords로 제시합니다. Blowfish.net은 내부적으로 사용하는 DWORT에서 바이트 순서를 보존하여 올바른 일을 할 것이라고 생각합니다.

예 : C ++ 코드에서 바이트 0102030405060708은 0x04030201 및 0x08070605가됩니다. .NET 구현은 0x01020304 및 0x05060708이됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top