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:

CFML Generating Random String

While working on one of my client’s projects, I’ve encountered the need of generating RANDOM strings. Since, as almost, any other language, Cold Fusion does not have any type of support for this functionality, I had to create a function of my own.

Hope you find it useful.


    function RandomString(length, chars="ABCDEFGHIJKLMNOPQRST0123456789-") {
        var i = 0;
        var theString = "";
        for (i = 0; i < length; i++) {
            theString &= Mid(chars, RandRange(1, len(chars), "SHA1PRNG"), 1);
        }
        return theString;
    }
0%