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

Foi útil?

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

operações

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.

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