Pergunta

Programa Minha C ++ está usando um baiacu padrão.

O meu programa C # está usando o algoritmo de criptografia Blowfish de aqui .

Os dois aplicativos (clientes TCP) fazer a mesma coisa: receber um pacote, criptografá-lo e enviá-lo de volta. Se o servidor reconhece o pacote como normal - ele envia outro pacote, caso contrário, ele fecha o soquete. Segui todas as funções em C ++ e C # e tudo é o mesmo, exceto a criptografia.

No arquivo C ++ Eu tenho apenas uma criptografia. No entanto, no C # Blowfish Tenho

  • BlowfishCBC
  • BlowfishCFB
  • BlowfishECB
  • BlowfishSimple

Eu não sei qual é o único no meu projeto C ++, assim que eu escolhi aleatoriamente BlowfishECB. Mas ele não funciona, o servidor (que eu não tenho acesso a ele) não reconhece o pacote como criptografada.

A minha pergunta: Existe um padrão Blowfish para C # ou se este é o único, como posso resolver esse problema? EDIT:

O código C ++ blowfish pode ser visto aqui .

Foi útil?

Solução

Não, não é um baiacu padrão para C #. Ele usará o que você diga a ele. (Edit: Eu acho que eu entendi mal Se você quiser um baiacu compatível com padrões para C #, eu recomendaria Bouncy Castle Crypto É um porto de Java e contém padrões RFC mais documentados Dê uma olhada nos testes de unidade para exemplos de como... usar as classes. Sempre que eu usei-o durar a documentação estava faltando, mas os testes de unidade são muito bons exemplos de como as coisas se encaixam.)

A pergunta que você quer perguntar é qual sabor do Blowfish seu aplicativo C ++ está usando. Qual biblioteca você está usando no aplicativo do C ++ para fazer a sua criptografia? Uma vez que você sabe disso, então você pode fazer a escolha correta em sua aplicação C #.

Eu, pessoalmente encontrar CBC o mais. "Simples" seria provavelmente vale a pena tentar.

Você também terá que lidar com coisas como ter certeza que seu vector de inicialização corresponda-se dependendo de qual você usa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top