@NotLetters Спасибо!
Подскажите, блок получение писем, будет искать последнее письмо?
Crypto - Модуль с криптографическими функциями
-
@Fox said in Crypto - Модуль с криптографическими функциями:
правда вместо нормального ide привык использовать https://bablosoft.com/bas/editmaininterface
Это супер жесть, меня там на 5 минут не хватило )
-
@Fox said in Crypto - Модуль с криптографическими функциями:
Ммм, а я после FM как-то привык к vue, правда вместо нормального ide привык использовать https://bablosoft.com/bas/editmaininterface
Спасибо, но нет.
-
@sergerdn said in Crypto - Модуль с криптографическими функциями:
@Fox said in Crypto - Модуль с криптографическими функциями:
Ммм, а я после FM как-то привык к vue, правда вместо нормального ide привык использовать https://bablosoft.com/bas/editmaininterface
Спасибо, но нет.
Я просто мнением поделился )
-
@Fox said in Crypto - Модуль с криптографическими функциями:
Я просто мнением поделился )
Попробуй наконец ide и vite + vue ))
-
@mask said in Crypto - Модуль с криптографическими функциями:
@Νικήτας Здравствуйте, подскажите пожалуйста, можно ли спомощю этого модуля заходить на сайты с поддержкой криптографических ключей и сертификатов ГОСТ??
Он не имеет к этому отношения(нельзя)
-
@mask said in Crypto - Модуль с криптографическими функциями:
@UserTrue можно как то это реализовать?
У меня не было такой задачи
-
а я вот понять не могу как должно быть запаковано в AES - чтоб нормально распаковать этим модулем:
Есть скрипт:<?php $plaintext = 'My secret message 1234'; $password = '3sc3RLrpd17'; $method = 'aes-256-cbc'; $key = password_hash($password, PASSWORD_BCRYPT, ['cost' => 12]); echo "Key:" . $key . "\n"; // IV must be exact 16 chars (128 bit) $iv = chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0); // av3DYGLkwBsErphcyYp+imUW4QKs19hUnFyyYcXwURU= $encrypted = base64_encode(openssl_encrypt($plaintext, $method, $key, OPENSSL_RAW_DATA, $iv)); // My secret message 1234 $decrypted = openssl_decrypt(base64_decode($encrypted), $method, $key, OPENSSL_RAW_DATA, $iv); echo 'plaintext=' . $plaintext . "\n"; echo 'cipher=' . $method . "\n"; echo 'encrypted to: ' . $encrypted . "\n"; echo 'decrypted to: ' . $decrypted . "\n\n";взято от сюда https://gist.github.com/Oranzh/2520823f9d1cea603e60b8e8f3fe1d36#file-with_bcrypt_password_hash-md
получаем зашифрованную строку https://onlinephp.io/
rUZ+hPooQKl/AFDmc87rkoEQS8p//9ZTYDDpduhJhfw=
с паролем: 3sc3RLrpd17Пытаюсь распаковать через модуль:

Ошибок не выдает, но переменная AES - пустая -
cryptoJs просто с нюансами, на основе соли генерирует IV + encrypt key)
<?php $plaintext = 'My secret message 1234'; $password = '3sc3RLrpd17'; $method = 'aes-256-cbc'; $encrypted = encrypt_aes_cryptoJS($method, $password, $plaintext); $decrypted = decrypt_aes_cryptoJS($method, $password, $encrypted); echo 'plaintext=' . $plaintext . "\n"; echo 'cipher=' . $method . "\n"; echo 'encrypted to: ' . $encrypted . "\n"; echo 'decrypted to: ' . $decrypted . "\n\n"; function encrypt_aes_cryptoJS($cipher, $password, $plaintext) { $iv_len = openssl_cipher_iv_length($cipher); $key_len = openssl_cipher_key_length($cipher); $cryptoJS_magic = "Salted__"; $salt = random_bytes(8); list('key'=>$key, 'iv'=>$iv) = evpBytesToKey($password, $salt, $key_len, $iv_len); $encrypted_raw = openssl_encrypt($plaintext, $cipher, $key, OPENSSL_RAW_DATA, $iv); $full = $cryptoJS_magic . $salt . $encrypted_raw; return base64_encode($full); }; function decrypt_aes_cryptoJS($cipher, $password, $payloadB64) { $cryptoJS_magic = "Salted__"; $data = base64_decode($payloadB64, true); if ($data === false) { throw new Exception("Invalid base64 payload"); } if (substr($data, 0, 8) !== $cryptoJS_magic) { throw new Exception("missing cryptoJS Salted__ prefix"); } $salt = substr($data, 8, 8); $keyLen = openssl_cipher_key_length($cipher); $ivLen = openssl_cipher_iv_length($cipher); list('key' => $key, 'iv' => $iv) = evpBytesToKey($password, $salt, $keyLen, $ivLen); $encrypted_raw = substr($data, 16); $decrypted = openssl_decrypt($encrypted_raw, $cipher, $key, OPENSSL_RAW_DATA, $iv); if ($decrypted === false) { throw new Exception("Decryption failed"); } return $decrypted; } function evpBytesToKey($password, $salt, $key_len = 32, $iv_len = 16) { $data = ''; $prev = ''; $required = $key_len + $iv_len; while (strlen($data) < $required) { // D_i = MD5( D_{i-1} || password || salt ) $prev = md5($prev . $password . $salt, true); $data .= $prev; } return [ 'key' => substr($data, 0, $key_len), 'iv' => substr($data, $key_len, $iv_len), ]; }