2009-10-23 26 views
6

Tôi đang cố gắng để có được một băm MD5 của một giá trị trong ColdFusion. Tôi đã thử mã này bằng cách sử dụng chức năng Encrypt :Làm thế nào tôi có thể nhận được một băm MD5 trong Coldfusion?

<cfscript> 
val = 1117; 
md5 = Encrypt(val, 0, "MD5", "Hex"); 
</cfscript> 

Nhưng tôi nhận được một lỗi:

The MD5 algorithm is not supported by the Security Provider you have chosen.

Làm thế nào tôi có thể chọn một nhà cung cấp bảo mật khác nhau?


Vâng, tôi biết rằng MD5 không phải là một mã hóa thuật toán , nhưng các folks ColdFusion dường như không biết rằng vì họ liệt kê nó như là một thuật toán hỗ trợ cho các chức năng Encrypt. Chỉnh sửa: Tôi không thấy chức năng được xây dựng trong Hash nhưng tôi thấy thực tế là Mã hóa danh sách md5 và sha như các thuật toán được cho là được hỗ trợ, vì vậy tôi nghĩ (không chính xác) rằng đây chỉ là cách bạn nhận được băm CF.

+3

Băm không phải là mã hóa. Mã hóa, theo định nghĩa, có thể hoàn tác. Hashing phải đủ khó khăn để hoàn tác nó là không thực tế. Nếu bạn cần khôi phục dữ liệu gốc, hãy sử dụng mã hóa. Nếu bạn cần xác minh dữ liệu (như tập tin, hoặc mật khẩu) băm là cách để đi. Bất kể, sử dụng hàm băm() cho MD5, như Eddie đã chỉ ra. –

+0

@Ben Doom: Tôi hoàn toàn hiểu được sự khác biệt giữa băm và mã hóa. Tôi thậm chí còn nói như vậy trong chú thích của tôi. Tôi không thấy chức năng "băm" và thấy rằng "mã hóa" được yêu cầu hỗ trợ MD5, SHA và một số thuật toán băm khác, vì vậy tôi nghĩ đó là cách bạn phải làm trong ColdFusion. – Kip

Trả lời

14

Nếu bạn muốn băm không nên thử dùng số hash function trong ColdFusion? Tôi kết thúc bằng cách sử dụng các thuật toán SHA hoặc SHA-256, nhưng MD5 nên làm việc bằng cách sử dụng chức năng đó.

hash(saltTheHash & trim(UserPassword), "SHA") 

Tôi sẽ chỉ sử dụng mã hóa nếu bạn muốn giải mã đôi khi sau đó. Đối với những thứ như mật khẩu, bạn không muốn giải mã chúng để sử dụng hàm băm thay thế.

+0

Ông nên bỏ qua các SHA thuộc tính (hoặc sử dụng MD5, mặc dù nó là mặc định) để có được kết quả anh ta muốn. Đối với những thứ * khác * hơn là xác minh tệp, mặc dù, tôi cũng sử dụng SHA. –

+0

cảm ơn, tôi đã không nhìn thấy hàm băm khi tôi đang duyệt danh sách, và tôi thấy MD5 trong chức năng mã hóa, vì vậy tôi nghĩ rằng làm thế nào bạn đã làm nó trong cf. – Kip

7

Sử dụng CF được tích hợp sẵn chức năng "Băm". Phải mất định dạng sau:

Hash(string [, algorithm [, encoding ]]) 

Các công trình sau đây:

<cfscript> 
    val = 1117; 
    md5 = Hash(val, "MD5"); 
</cfscript> 
+0

oops, thậm chí không thấy chức năng đó. cảm ơn! – Kip

Các vấn đề liên quan