2010-09-07 9 views
6

Tôi biết cách mã hóa dữ liệu bằng ColdFusion bằng AES_128. Tôi cũng biết cách mã hóa dữ liệu bằng MSSQL AES_128. Có ai biết nếu có thể mã hóa dữ liệu trong Coldfusion bằng AES_128, sau đó giải mã chuỗi trong MSSQL?Mã hóa SQL & Coldfusion

Tôi đã chơi với nó rất nhiều và dường như không thể tìm ra.

Cảm ơn, Paul

+0

Bạn đã cố gắng sử dụng mã hóa/giải mã cụm mật khẩu trên cả hai mặt? –

+0

Có, tôi đã thử điều đó rồi. Tôi không nghĩ rằng bạn có thể sử dụng một thuật toán nâng cao như AES với cụm từ mật khẩu trong sql. – Paul

Trả lời

3

Có điều này là có thể. Không có gì về AES làm cho nó độc quyền. Tuy nhiên, có rất nhiều cách để thực hiện một mật mã khối, và hầu hết trong số chúng là không chính xác. MS SQL encryptbykey() sử dụng chế độ ECB và mặc định là ANSI_PADDING. Tôi sẽ cố gắng giải mã tin nhắn bằng cách sử dụng cùng một khóa với chế độ AES ở chế độ ECB và có khả năng là chỉ hoạt động. Chế độ CBC nên được sử dụng, nhưng điều này đòi hỏi một IV, và encryptbykey() không chấp nhận một IV như một tham số để chế độ ECB của nó. (MySQL cũng chế độ ecb, tôi đã nhìn vào mã. Đó là một sự xấu hổ tôi không thể làm điều đó với MS SQL).

+0

Tôi đang sử dụng phương thức encryptbykey() rồi. Tôi có thể mã hóa và giải mã chuỗi trong SQL tuy nhiên tôi nghĩ rằng vấn đề tôi đang gặp phải là MSSQL sử dụng khóa Đối xứng để mã hóa và giải mã dữ liệu và ngôn ngữ phía máy chủ mà tôi đang sử dụng (đó là ColdFusion) cũng yêu cầu một khóa tuy nhiên tôi không thể sao chép khóa đó trong Coldfusion bởi vì theo như tôi biết bạn không thể thực sự xem nội dung của khóa đối xứng chính xác? Tôi đã thử sử dụng gui_key của Symmetric key nhưng nó không hoạt động. – Paul

+0

@Paul aes là một mật mã đối xứng. gui_key() là một hàm string2key và không có gì để làm với đối xứng, nó thực sự là một thông điệp tiêu hóa. Bạn có thể sử dụng một hàm string2key khác, hoặc ngẫu nhiên tạo ra một khóa và ở đó cho bạn sẽ không cần một hàm string2key. – rook