Criptografar e C # descriptografar em JavaScript
-
16-09-2019 - |
Pergunta
Eu estou procurando maneira de corda criptografar em C # e para decifrá-lo usando JavaScript. JavaScript neste caso é uma linguagem de script para o sistema interno, então eu não deveria se preocupar com as pessoas que acessam chave privada / senha que será necessária para a descodificação.
Pesquisa on-line para solução parece que a criptografia AES deve fazer o truque. Eu olhei para slowAES e solução RijndaelManaged , mas não teve sorte fazê-la funcionar.
Eu usei código C # que Cheeso prestada e recebida texto cifrado idênticos. Mas quando eu tentei usar slowAES para criptografar mesmo pedaço de dados que recebi cifra completamente diferente.
var testString = new Array("w", "a", "t", "s", "o", "n", "?");
var test = slowAES.encrypt(testString, slowAES.modeOfOperation.CBC, "12345678901234567890123456789012", slowAES.aes.keySize.SIZE_256, new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
alert(test.cipher);
Pode alguém ponto-me na direção certa? Eu não me importo sobre o método, desde que eu posso alcançar resultados. Meu objetivo é levar URL por exemplo:
www.test.com/clientid=123
usar .NET (C #) para criptografá-lo para parecer
www.test.com/clientid=asdf;lkjsxd;flkjq934857u9duhfgkjhgalsdkjfh
e, em seguida, usar o JavaScript para convertê-lo de volta para
www.test.com/clientid=123
Obrigado, ITRushn
Solução 3
Eu consegui resolver o meu problema usando criptografia RC4. Você pode obter mais informações sobre a implementação do meu blogue .
Outras dicas
encriptação / desencriptação ocorrem em dados binários. Portanto, você deve preservar esses dados binários entre C # e JavaScript. Codifica a saída como uma base64 ou string hexadecimal é provavelmente a melhor maneira de fazer isso.
Opção 1
Se a sua única intenção é proteger os dados confidenciais entre o servidor eo cliente que é um problema resolvido, use SSL.
Opção 2
-
dada a url www.test.com/clientid=123
-
uso .NET (C #) para criptografá-lo e apontar para um local diferente: www.mywebserver.com/forward.aspx?url=asdf;lkjsxd;flkjq934857u9duhfgkjhgalsdkjfh
-
e, em seguida, na página forward.aspx, descriptografar e redirecionamento para www.test.com/clientid=123
-
o cliente, em seguida, segue o HTTP redirecionamento e prest-feito-o. Não há chaves compartilhados, fácil de implementar, ele simplesmente funciona.
Nota:
Quanto à sua solução original que não pode ser feito de forma segura, sem COM ou algum outro meio de inter-op. A razão de eu dizer isso é que o JScript seria necessário acesso a um par de chaves pública / privada, que, para o melhor de meu conhecimento, não é possível. Sem uma chave pública / privada do servidor seria necessário para compartilhar uma chave simétrica com o cliente. Com nenhum meio pelo qual a segurança transferir essa chave não ter assegurado os dados, apenas ofuscado-lo.
Eu acho que a abordagem mais simples seria usar SSL, seguida pela do URL de encaminhamento.