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