Convertendo o código de criptografia Coldfusion em C #
Eu tenho uma página do Coldfusion que inclui uma seção de código que criptografa uma variável como esta:
<cfset data64 = toBase64(key)>
<cfset encryptedID = encrypt(getUser.ID, data64, "BLOWFISH", "Base64")>
Estamos mudando o site para um CMS baseado em .NET e preciso converter esta página em C #, mas estou com problemas.
Eu converti com sucesso a primeira linha para isso:
byte[] keyBytes = System.Text.Encoding.UTF8.GetBytes(key);
string keyBase64 = System.Convert.ToBase64String(keyBytes);
Também adicionei a classe blowfish.cs encontrada emhttps://defuse.ca/blowfish.htm, mas estou um pouco confuso sobre como usar isso com a chave (e se eu quero usar ECB, CBC ou CTR). Também não tenho certeza do que o analógico é usar a codificação base64 no Coldfusion ... é isso que estou tentando atualmente, que não está produzindo os mesmos resultados que o código original:
BlowFish b = new BlowFish(keyBase64);
byte[] idBytes = System.Text.Encoding.UTF8.GetBytes(thisUser["ID"].ToString());
byte[] idBytesEncrypted = b.Encrypt_ECB(idBytes);
string idBase64 = System.Convert.ToBase64String(idBytesEncrypted);
Não tenho muita experiência com criptografia em geral, e o código Coldfusion foi configurado com a ajuda de outro desenvolvedor que não possui experiência em C #. Qualquer sugestão será muito bem-vinda. Obrigado!