没有特殊字符的加密算法

时间:2011-07-07 20:12:14

标签: encryption coldfusion

ColdFusion中是否存在不使用任何特殊字符(仅限字母数字)的加密算法?我有一些数据,我将其作为伪密码传递给用户,其中包括用户名和分配给他们的站点。我需要使用ColdFusion 8 Enterprise版本内置的加密算法对字符串进行加密,并且最终字符串中不能包含任何特殊字符。这是可能的,如果是这样,那么算法会做什么?

<cfset loc.token = encrypt(loc.token,Application.secretKey,'Blowfish','Base64') />

3 个答案:

答案 0 :(得分:4)

只需使用binhex。将每个字节编码为十六进制数,范围从00到FF。但是,Base 64包含几个非字母数字字符,例如+ / =。

答案 1 :(得分:1)

这应该对你有用,

#encrypt('text_im_encrypting', ToBase64(BinaryDecode('my_encrypt_key',"Hex")), 'AES', 'Hex');#

显然替换* text_im_encrypting *和* my_encrypt_key *值... =)

答案 2 :(得分:-1)

有两个未记录的函数,cfusion_encrypt(string,key)和cfusion_decrypt(string,key),它们基于十六进制字符串进行加密/解密。基本上,由于结果字符串是完全十六进制的,因此它不包含特殊字符:

<cfscript>
    writeoutput(cfusion_encrypt("stackoverflow", "rocks")); // outputs 011B0208181D190619151E0014
    writeoutput(cfusion_decrypt("011B0208181D190619151E0014", "rocks")); // outputs stackoverflow
</cfscript>