문제

내 C ++ 프로그램은 표준 블로우 피쉬를 사용하고 있습니다.

내 C# 프로그램은 Blowfish 암호화 알고리즘을 사용하고 있습니다. 여기.

두 응용 프로그램 (TCP 클라이언트) 모두 같은 작업을 수행합니다. 패킷을 받고 암호화 한 다음 다시 보냅니다. 서버가 패킷을 정상으로 인식하는 경우 다른 패킷을 보내면 소켓이 닫힙니다. C ++ 및 C#의 모든 기능을 따랐으며 암호화를 제외한 모든 것이 동일합니다.

C ++ 파일에는 하나의 암호화 만 있습니다. 그러나 C# blowfish에서 나는 가지고 있습니다

  • blowfishcbc
  • blowfishcfb
  • Blowfishecb
  • Blowfishsimple

C ++ 프로젝트의 어느 것이 무엇인지 몰랐기 때문에 무작위로 선택했습니다. BlowfishECB. 그러나 작동하지 않으며 서버 (액세스 할 수 없습니다) 패킷을 암호화 된 것으로 인식하지 않습니다.

내 질문 : C#에 대한 표준 블로우 피쉬가 있습니까? 아니면 이것이 유일한 사람이라면 어떻게이 문제를 해결합니까?편집하다:

C ++ 블로우 피쉬 코드 여기에서 볼 수 있습니다.

도움이 되었습니까?

해결책

아니요, C#에는 표준 블로우 피쉬가 없습니다. 그것은 당신이 말하는 것을 사용할 것입니다. (편집 : 나는 오해했다고 생각합니다. C#에 대한 표준을 준수하는 Blowfish를 원한다면 Bouncy Castle Crypto를 추천합니다. Java의 포트이며 가장 문서화 된 RFC 표준을 포함합니다. 클래스를 사용하십시오. 마지막으로 사용할 때마다 문서가 부족했지만 단위 테스트는 사물이 어떻게 맞는 지에 대한 좋은 예입니다.)

당신이 묻고 싶은 질문은 당신의 C ++ 응용 프로그램이 사용하는 Blowfish의 풍미입니다. C ++ 응용 프로그램에서 어떤 라이브러리를 사용하여 암호화를 수행하고 있습니까? 일단 알고 나면 C# 응용 프로그램에서 올바른 선택을 할 수 있습니다.

나는 개인적으로 CBC를 가장 만난다. "단순"은 아마도 시도 할 가치가있을 것입니다.

또한 사용하는 초기화 벡터가 사용하는 것과 같은 것들을 다루어야합니다.

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