xxxxxxxxxx
<?php
// Encryption function
function encrypt($data, $encryptionKey) {
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('AES-128-CBC'));
$encrypted = openssl_encrypt($data, 'AES-128-CBC', $encryptionKey, 0, $iv);
return base64_encode($iv . $encrypted);
}
// Decryption function
function decrypt($encryptedData, $encryptionKey) {
$encryptedData = base64_decode($encryptedData);
$ivLength = openssl_cipher_iv_length('AES-128-CBC');
$iv = substr($encryptedData, 0, $ivLength);
$encrypted = substr($encryptedData, $ivLength);
return openssl_decrypt($encrypted, 'AES-128-CBC', $encryptionKey, 0, $iv);
}
// Example usage
$data = "Hello, World!";
$encryptionKey = "mySecretKey";
$encrypted = encrypt($data, $encryptionKey);
echo "Encrypted data: " . $encrypted . "\n";
$decrypted = decrypt($encrypted, $encryptionKey);
echo "Decrypted data: " . $decrypted . "\n";
?>
xxxxxxxxxx
const Cryptr = require('cryptr');
const cryptr = new Cryptr('ReallySecretKey');
const encryptedString = cryptr.encrypt('Popcorn');
const decryptedString = cryptr.decrypt(encryptedString);
console.log(encryptedString);
xxxxxxxxxx
function CryptoJSAesEncrypt($passphrase, $plain_text){
$salt = openssl_random_pseudo_bytes(256);
$iv = openssl_random_pseudo_bytes(16);
//on PHP7 can use random_bytes() istead openssl_random_pseudo_bytes()
//or PHP5x see : https://github.com/paragonie/random_compat
$iterations = 999;
$key = hash_pbkdf2("sha512", $passphrase, $salt, $iterations, 64);
$encrypted_data = openssl_encrypt($plain_text, 'aes-256-cbc', hex2bin($key), OPENSSL_RAW_DATA, $iv);
$data = array("ciphertext" => base64_encode($encrypted_data), "iv" => bin2hex($iv), "salt" => bin2hex($salt));
return json_encode($data);
}
$string_json_fromPHP = CryptoJSAesEncrypt("your passphrase", "your plain text");
xxxxxxxxxx
function CryptoJSAesDecrypt(passphrase,encrypted_json_string){
var obj_json = JSON.parse(encrypted_json_string);
var encrypted = obj_json.ciphertext;
var salt = CryptoJS.enc.Hex.parse(obj_json.salt);
var iv = CryptoJS.enc.Hex.parse(obj_json.iv);
var key = CryptoJS.PBKDF2(passphrase, salt, { hasher: CryptoJS.algo.SHA512, keySize: 64/8, iterations: 999});
var decrypted = CryptoJS.AES.decrypt(encrypted, key, { iv: iv});
return decrypted.toString(CryptoJS.enc.Utf8);
}
console.log(CryptoJSAesDecrypt('your passphrase','<?php echo $string_json_fromPHP?>'));
xxxxxxxxxx
function _hash($string, $encrypt = true){
$key = "openSSL_key";
$iv = "openSSL_iv";
if ($key && $iv){
$encrypt_method = "AES-256-CBC";
$key = hash("sha256", $key);
$iv = substr(hash("sha256", $iv), 0, 16); // sha256 is hash_hmac_algo
if ($encrypt) {
$output = openssl_encrypt($string, $encrypt_method, $key, 0, $iv);
$output = base64_encode($output);
} else {
$output = openssl_decrypt(base64_decode($string), $encrypt_method, $key, 0, $iv);
}
return $output;
}
return false;
}
# encrypt
echo _hash('addin.my.id'); // VWZNcHhacmJvRmtuVHlMMEZTMUFNUT09
# decrypt
echo _hash('VWZNcHhacmJvRmtuVHlMMEZTMUFNUT09', false); // addin.my.id
xxxxxxxxxx
const cipher = salt => {
const textToChars = text => text.split('').map(c => c.charCodeAt(0));
const byteHex = n => ("0" + Number(n).toString(16)).substr(-2);
const applySaltToChar = code => textToChars(salt).reduce((a,b) => a ^ b, code);
return text => text.split('')
.map(textToChars)
.map(applySaltToChar)
.map(byteHex)
.join('');
}
const decipher = salt => {
const textToChars = text => text.split('').map(c => c.charCodeAt(0));
const applySaltToChar = code => textToChars(salt).reduce((a,b) => a ^ b, code);
return encoded => encoded.match(/.{1,2}/g)
.map(hex => parseInt(hex, 16))
.map(applySaltToChar)
.map(charCode => String.fromCharCode(charCode))
.join('');
}
// To create a cipher
const myCipher = cipher('mySecretSalt')
//Then cipher any text:
console.log(myCipher('the secret string'))
//To decipher, you need to create a decipher and use it:
const myDecipher = decipher('mySecretSalt')
console.log(myDecipher("7c606d287b6d6b7a6d7c287b7c7a61666f"))
Run code snippet
xxxxxxxxxx
function encryptString(value) {
let encryptedValue = ''
for (let i = 0; i < value.length; i++) {
const charCode = value.charCodeAt(i)
const encryptedCharCode = charCode ^ 42 // XOR dengan 42 untuk enkripsi
encryptedValue += String.fromCharCode(encryptedCharCode)
}
return encryptedValue
}
function decryptString(encryptedValue) {
let decryptedValue = ''
for (let i = 0; i < encryptedValue.length; i++) {
const encryptedCharCode = encryptedValue.charCodeAt(i)
const decryptedCharCode = encryptedCharCode ^ 42 // XOR dengan 42 untuk dekripsi
decryptedValue += String.fromCharCode(decryptedCharCode)
}
return decryptedValue
}
const originalValue = 'qwerty12'
const encryptedValue = encryptString(originalValue)
console.log('Encrypted Value:', encryptedValue)
const decryptedValue = decryptString(encryptedValue)
console.log('Decrypted Value:', decryptedValue)