Skip to content

Instantly share code, notes, and snippets.

Created June 10, 2015 11:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/6c6d9bad3c4ae2838137 to your computer and use it in GitHub Desktop.
Save anonymous/6c6d9bad3c4ae2838137 to your computer and use it in GitHub Desktop.
TryCF Gist
<cfscript>
key = '62v01fVsCWHfRcW';
text = '66866996699';
iv = BinaryDecode("0000000000000000","hex");
function extendKey(key, size = 24, c = "0") {
var i = 0;
for (i = len(key); i lt size; i = i + 1) {
key = key & c;
}
return key;
}
function extendText(text, c = "0") {
var i = 0;
for (i = len(text) % 8; i lt 8; i = i + 1) {
text = text & c;
}
return text;
}
function encrypt3desCbcCF(text, key, iv) {
return encrypt(
text,
toBase64(extendKey(key, 24, urlDecode('%00'))),
'DESEDE/CBC/PKCS5Padding',
'Base64',
iv
);
}
function javaCreateObject(obj) {
return createObject('java', obj);
}
function encrypt3desCbcJava(text, key, iv) {
var Cipher = javaCreateObject('javax.crypto.Cipher');
var IvParameterSpec = javaCreateObject('javax.crypto.spec.IvParameterSpec');
var SecretKeySpec = javaCreateObject('javax.crypto.spec.SecretKeySpec');
var jkey = SecretKeySpec.init(
extendKey(key, 24, urlDecode('%00')).getBytes(),
"DESede"
);
var jiv = IvParameterSpec.init(iv);
var jcipher = Cipher.getInstance("DESede/CBC/PKCS5Padding");
jcipher.init(Cipher.ENCRYPT_MODE, jkey, jiv);
return toBase64(jcipher.doFinal(
text.getBytes()
));
}
</cfscript>
<cfdump var="#extendKey(key, 24, 'A')#" /><br />
<cfdump var="#extendText(text, 'A')#" /><br />
<cfdump var="#encrypt3desCbcCF(text, key, iv)#" /><br />
<cfdump var="#encrypt3desCbcJava(text, key, iv)#" /><br />
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment