PHP
Code: Select all
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>Untitled 1</title>
</head>
<body>
<?php
    /* Open the cipher */
    $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
    // Create the IV and determine the keysize length
    $iv = 'always6teenbytes';
 
    // Create key: 16 bytes for 128bit strength, 24 for 192, 32 for 256
    $key = substr(md5('secretpassword'), 0, 32);
    /* Intialize encryption */
    mcrypt_generic_init($td, $key, $iv);
    /* Encrypt data */
    $bb = mcrypt_generic($td, 'Some remarkably sensitive data...');
    $encrypted = base64_encode($bb);
    /* Terminate encryption handler */
    mcrypt_generic_deinit($td);
    /* Initialize encryption module for decryption */
    mcrypt_generic_init($td, $key, $iv);
    /* Decrypt encrypted string */
    $decrypted = mdecrypt_generic($td, base64_decode($encrypted));
    /* Terminate decryption handle and close module */
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);
    /* Show string */
    echo $key . "<br>";
    echo $encrypted . "<br>";
    echo trim($decrypted) . "\n";
?>
</body>
</html>
Code: Select all
pwd$ = "secretpassword"
key$ = Left(MD5Fingerprint(@pwd$, StringByteLength(pwd$)), 32) ; it's 32 bytes anyway, only reason for Left() is for smaller key sizes
iv$ = "always6teenbytes" ; iv is always 16 bytes for AES
OpenWindow(0, 0, 0, 540, 100, "DECRYPT CIPHER", #PB_Window_ScreenCentered|#PB_Window_SystemMenu)
TextGadget(0, 15, 23, 50, 20, "  Cipher:")
StringGadget(1, 60, 20, 460, 20, "")
TextGadget(2, 15, 58, 50, 20, "Plaintext:")
StringGadget(3, 60, 55, 320, 20, "")
ButtonGadget(4, 385, 55, 40, 20, "copy")
SetActiveGadget(1)
Repeat
  ev=WaitWindowEvent()
  Select ev
    Case #PB_Event_Gadget
      Select EventGadget()
        Case 1
          If EventType() = #PB_EventType_Change
            encrypted$ = GetGadgetText(1)
            *enc = @encrypted$
            
            ; decode base 64 first
            *unbase = AllocateMemory(StringByteLength(encrypted$))
            size = Base64Decoder(*enc, MemorySize(*unbase), *unbase, MemorySize(*unbase))
            
            ; now decode AES encryption
            If size < 16 : size = 16 : EndIf
            *decrypt = AllocateMemory(size)
            AESDecoder(*unbase, *decrypt, size, @key$, 256, @iv$, #PB_Cipher_CBC) 
            SetGadgetText(3, PeekS(*decrypt))
            SendMessage_(GadgetID(3), #EM_SETSEL, 0, -1)
            SetActiveGadget(3)
          ElseIf EventType() = #PB_EventType_Focus
            SendMessage_(GadgetID(1), #EM_SETSEL, 0, -1)
          EndIf
          
        Case 4
          SetClipboardText(GetGadgetText(3))
          
      EndSelect
  EndSelect
Until ev=#PB_Event_CloseWindow


