简介:PHP基于 OpenSSL 实现国密 SM4 加解密 代码如下: if (!in_array('sm4-cbc', openssl_get_cipher_methods())) { printf("不支持 sm4\n"); } key=′her−cat.com′;iv = random_bytes(openssl_cipher_iv_length('sm4-cbc')); $plaintext = '她和她的猫'; ciphertext=opensslencrypt(plaintex...
其实PHP的OpenSSL扩展支持很多种加密算法,想知道所有对称加密算法名称列表,可以调用openssl_get_cipher_methods()函数,这会返回一个数组: 代码语言:javascript 复制 array(0=>'AES-128-CBC',1=>'AES-128-CBC-HMAC-SHA1',...7=>'AES-128-ECB',...31=>'BF-CBC',200=>'seed-ofb',) 你会发现函数返回将...
完全兼容openssl的sm4-cbc和sm4-ecb国密SM算法,openssl >= 1.1.1支持国密算法时直接调用openssl进行SM4加解密,否则调用自定义算法。 - Endy-c/php-gm-crypto
参数说明: $key密钥,固定8个字符,不能多也不能少 代码语言:php 复制 <?php//加密functionencryption($str,$key='gV0iX9aD'){$iv=$key;$data=openssl_encrypt($str,"DES-CBC",$key,OPENSSL_RAW_DATA,$iv);$data=strtolower(bin2hex($data));return$data;}//解密functiondecryption($str,$key='gV0iX...
Block cipher modes: FPE (Format-Preserver Encryption) OTP (One-Time Password) based on SM3/SM4 (GM/T 0021-2012) Encoding: Base58 OpenSSL algorithms such as ECDSA, RSA, AES, SHA-1 are all still available in GmSSL. GM/T Protocols The GM/T standards cover 2 protocols: SSL VPN Protocol ...
cipher_algo 密码学方式。openssl_get_cipher_methods() 可获取有效密码方式列表。 passphrase 口令(passphrase)。若 passphrase 比预期长度短,将静默用 NUL 填充; 若比预期长度更长,将静默截断。 options options 是以下标记的按位或: OPENSSL_RAW_DATA 、 OPENSSL_ZERO_PADDING。
复制 *@paramstring$string需要解密的字符串*@paramstring$key密钥$decrypted=openssl_decrypt(hex2bin($string),'AES-128-ECB',$key,OPENSSL_RAW_DATA); 结: 代码语言:php 复制 加密(openssl_encrypt)函数,解密(openssl_decrypt)函数和hex2bin,方式不同