Пароли будут зашифрованы в .NET с использованием AES и сохранены в базе данных. В другом приложении, используя javascript (поверх движка Rhino) и библиотеку cryptojs, мне нужно будет расшифровать пароль, а затем использовать его.
Решение не обязательно должно быть сложным, все, что я ищу, — это простая реализация того, как я могу заставить этих двух парней работать вместе.
Следуйте этому руководству: http://www.aspsnippets.com/Articles/AES-Encryption-Decryption-Cryptography-Tutorial-with-example-in-ASPNet-using-C-and-VBNet.aspx
Успешно зашифровал простую строку («SFTPPass») с ключом («Ключ») в .NET, но как только я перешел к расшифровке в javascript, не знаю, как это сделать.
Это то, что у меня есть в javascript:
var encryptedPass = 'StrmZO1Vjd8noHYzXs8hiQQBQDJZA5Bpg3t4BcmrViU=';
var iv = CryptoJS.enc.Base64.parse('1Ph1oX+N+q/kzpdyaIKBpA==');
var key = CryptoJS.enc.Base64.parse('k/W+Xeenh3kSLneZ/DYXVpvshGbsFVdyfOFdFTJb1yE=');
var SFTPPass = CryptoJS.AES.decrypt(encryptedPass, 'Key', key, {iv: iv});
Однако, когда я пишу свой вывод в файл, он пуст.
Любые предложения или альтернативные решения приветствуются!
РЕДАКТИРОВАТЬ: по рекомендации alancnet теперь я получаю вывод, но строка не соответствует оригиналу, который равен «1234». Поэтому я следовал руководству по ссылке выше, чтобы перейти к проводу, используя ту же ключевую фразу и строку ввода. Захватил шестнадцатеричный ключ и iv, используя BitConverter.toString в .NET.
key = "752DA9F0D612540EEF1DE07A144781261A3D604DE339174ADAC5D5D6A695ABFF"
iv = "9714413594225F1D14FA02101C0D584D"
Как сейчас выглядит мой javascript:
var encryptedPass = 'Ao5ZnFYo344iWqv/Jr9euw==';
var iv = CryptoJS.enc.Hex.parse('9714413594225F1D14FA02101C0D584D');
var key = CryptoJS.enc.Hex.parse('752DA9F0D612540EEF1DE07A144781261A3D604DE339174ADAC5D5D6A695ABFF');
var decryptedString = CryptoJS.AES.decrypt(encryptedPass, key, {iv: iv});
FileWriter.write("[" + SFTPPass + "]");
- person wizulus   schedule 27.02.2014