LunaticThinker.me

Thoughts on code and poetry.

Welcome to LunaticThinker.me - thoughts on code and poetry.

3DES Encryption With CFSCRIPT

Won’t comment much about it. We needed it, you may need it, so here it is:



    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()
        ));
    }







Check also as an example here on trycf.com

Railo / ColdFusion – Writing Image to Outpout Stream

Hello guys,

Needed to do this for a project my team is maintaining, but I could only find the solution for ColdFusion, which looks like this:

JavaImport = structNew();

JavaImport.io = structNew();
JavaImport.io.File = CreateObject('java', 'java.io.File');

JavaxImport = StructNew();

JavaxImport.imageio = StructNew();
JavaxImport.imageio.ImageIO = CreateObject('java', 'javax.imageio.ImageIO');

imageBuffer = JavaxImport.imageio.ImageIO.read(JavaImport.io.File.Init(imagePath));

response = getPageContext().getFusionContext().getResponse();
response.setHeader('Content-Type', 'image/png');
response.setHeader('Cache-Control', 'max-age=604800, public');
JavaxImport.imageio.ImageIO.write(imageBuffer, "png", response.getResponse().getOutputStream() );

After consulting Railo documentation on GetPageContext method, we’ve come to the following result:

0%