Dịch vụ Đăng nhập Im lặng được viết bằng Coldfusion9 chấp nhận các chuỗi được mã hóa từ các hệ thống bên ngoài và sau đó giải mã dựa trên thiết lập Thuật toán/Mã hóa đã được đồng ý. Điều này đã làm việc mà không có vấn đề trong nhiều năm nay từ các hệ thống chạy ASP/JAVA/PHP, nhưng bây giờ chúng ta có một khách hàng không có lựa chọn nào khác ngoài sử dụng CryptoJS để thực hiện mã hóa và cho cuộc sống của tôi. giải mã trong Coldfusion.Mã hóa AES trong CryptoJS và giải mã trong Coldfusion
Kiến thức về mã hóa của tôi không phải là điều tuyệt vời nhưng điều tôi nhận thấy là mật mã được mã hóa của CryptoJS cho cùng một chuỗi/khóa giống nhau mỗi khi tôi thực hiện mã hóa trong khi Coldfusion/Java i luôn có thể được mã hóa chính xác chuỗi. Tôi không chắc liệu đây có phải là mã hóa có liên quan hay không nhưng tôi chưa bao giờ gặp vấn đề này khi chấp nhận chuỗi mã hóa từ bất kỳ hệ thống nào khác trước đây, vì vậy tôi hy vọng đó là cách tôi mã hóa trong CryptoJS không chính xác.
<cfoutput>
<!--- Set String and Key --->
<cfset theKey = toBase64("1234567812345678")>
<cfset string = "[email protected]">
<!--- CryptoJS AES Libraries --->
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/components/enc-base64-min.js"></script>
<script>
// Encrypt String using CryptoJS AES
var encrypted = CryptoJS.AES.encrypt("#string#", "#theKey#");
console.log(encrypted.toString());
// Decrypt String using CryptoJS AES
var decrypted = CryptoJS.AES.decrypt(encrypted, "#theKey#");
console.log(decrypted.toString(CryptoJS.enc.Utf8));
</script>
<!--- Coldfusion Decrypt String/FAILS --->
Decrypted: #decrypt(encryptedEmail, "#theKey#", "AES", "BASE64")#
</cfoutput>
mã mẫu của bạn không chạy vì bạn có thể ' kết hợp các biến JavaScript và ColdFusion với nhau như bạn. JavaScript là phía máy khách và ColdFusion là phía máy chủ, họ không thể nói cách bạn đang cố gắng làm cho chúng hoạt động. –
Matt khi tập lệnh này đang được chạy dưới dạng CFM và được phân tích/biên soạn bởi Coldfusion thì các biến này sẽ được đánh giá trước khi javascript được chạy. Tôi đã làm việc trên rất nhiều dự án trong những năm mà coldfusion và javascript đang trao đổi dữ liệu, tôi nghĩ vấn đề ở đây liên quan đến việc mã hóa trong CryptoJS và tôi tiếp cận điều này từ một góc đơn giản. –
Email được mã hóa không được xác định ở bất kỳ đâu. Đó không phải là vấn đề tổng thể của bạn, nhưng mã mẫu không đưa ra lỗi bạn nói nó –