Como usar Blowfish em C ++ como uma dll externa em C #
Pergunta
Parece que não há Blowfish em C # que faria o mesmo que esta .Assim eu decidi para usá-lo como um link externo e se ele não funciona novamente, em seguida, traduzir todo o Blowfish em C #. Mas primeiro eu vou tentar usar como um link externo.
Você poderia dar uma olhada na C ++ blowfish e diga-me se eu tiver que mudar os parâmetros da função ( alguns deles são LPBYTE, que não está incluído no C #).
Além disso, eu ficaria grato se você me disser como usá-los como uma dll externa (eu tê-lo compilado como já uma dll), mas os parâmetros da função em C ++ está me frustrando.
Editar: Eu preciso chamar única Inicializar, Encode e Decode.
Agradecemos antecipadamente!
Solução
Eu tive um problema semelhante a este em um projeto anterior. Tendo olhei para o código C ++, ele está usando BCE como você suspeita em seu post anterior. Acho que vejo a razão pela qual você obter resultados diferentes usando Blowfish.NET (sugestão de Arkain). O código C ++ lança as entradas em duas DWORDs, uma vez que encripta. Acredito Blowfish.NET estará fazendo a coisa certa, preservando a ordem de bytes nas DWORDs ele usa internamente para encipher.
Por exemplo: Em código C ++, os bytes 0102030405060708 tornar 0x04030201 e 0x08070605. A implementação do .NET será tornar 0x01020304 e 0x05060708.