位置: 编程技术 - 正文
推荐整理分享PHP:mcrypt_encrypt()的用法_Mcrypt函数,希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!
(PHP 4 >= 4.0.2, PHP 5)
mcrypt_encrypt — 使用给定参数加密明文
说明 string mcrypt_encrypt ( string $cipher , string $key , string $data , string $mode [, string $iv ] )加密数据并返回密文。
参数cipher
MCRYPT_ciphername 常量中的一个,或者是字符串值的算法名称。
key加密密钥。 如果其长度小于所需的长度,将在其后使用 补齐。 建议不要使用 ASCII 字符作为密钥。
建议使用 mhash 函数 从一个字符串中创建密钥。
data使用给定的 cipher 和 mode 加密的数据。 如果数据长度不是 n*分组大小,则在其后使用 补齐。
返回的密文长度可能比 data 更大。
modeMCRYPT_MODE_modename 常量中的一个,或以下字符串中的一个:"ecb","cbc","cfb","ofb","nofb" 和 "stream"。
iv在 CBC, CFB, OFB 模式中用于初始化过程,在 STREAM 模式中用于某些算法。如果未提供 IV 并且在某算法中需要,本函数发出一条警告并使用一个全部字节设为 "" 的 IV。
返回值以字符串方式返回密文。
范例
Example #1 mcrypt_encrypt() 例程
<?php#---加密---#密钥应该是随机的二进制数据,#开始使用scrypt,bcrypt或PBKDF2将一个字符串转换成一个密钥#密钥是进制字符串格式$key=pack('H*',"bcbb7ea0cd8bcefbcabefdebae5e1de2ffb2aa3");#显示AES-,,对应的密钥长度:#,,字节。$key_size=strlen($key);echo"Keysize:".$key_size."n";$plaintext="ThisstringwasAES-/CBC/ZeroBytePaddingencrypted.";#为CBC模式创建随机的初始向量$iv_size=mcrypt_get_iv_size(MCRYPT_RIJNDAEL_,MCRYPT_MODE_CBC);$iv=mcrypt_create_iv($iv_size,MCRYPT_RAND);#创建和AES兼容的密文(Rijndael分组大小=)#仅适用于编码后的输入不是以h结尾的#(因为默认是使用0来补齐数据)$ciphertext=mcrypt_encrypt(MCRYPT_RIJNDAEL_,$key,$plaintext,MCRYPT_MODE_CBC,$iv);#将初始向量附加在密文之后,以供解密时使用$ciphertext=$iv.$ciphertext;#对密文进行base编码$ciphertext_base=base_encode($ciphertext);echo$ciphertext_base."n";#===警告===#密文并未进行完整性和可信度保护,#所以可能遭受PaddingOracle攻击。#---解密---$ciphertext_dec=base_decode($ciphertext_base);#初始向量大小,可以通过mcrypt_get_iv_size()来获得$iv_dec=substr($ciphertext_dec,0,$iv_size);#获取除初始向量外的密文$ciphertext_dec=substr($ciphertext_dec,$iv_size);#可能需要从明文末尾移除0$plaintext_dec=mcrypt_decrypt(MCRYPT_RIJNDAEL_,$key,$ciphertext_dec,MCRYPT_MODE_CBC,$iv_dec);echo$plaintext_dec."n";?>以上例程会输出:
更高级的 API, 参见 mcrypt_module_open()。
PHP:mcrypt_enc_self_test()的用法_Mcrypt函数 mcrypt_enc_self_test(PHP4=4.0.2,PHP5)mcrypt_enc_self_test在打开的模块上进行自检说明intmcrypt_enc_self_test(resource$td)在td指定的算法上进行自检操作。参数td加密描述符
PHP:mcrypt_enc_is_block_algorithm()的用法_Mcrypt函数 mcrypt_enc_is_block_algorithm(PHP4=4.0.2,PHP5)mcrypt_enc_is_block_algorithm检测打开模式的算法是否为分组算法说明boolmcrypt_enc_is_block_algorithm(resource$td)打开模式的算法是
PHP:mcrypt_enc_is_block_mode()的用法_Mcrypt函数 mcrypt_enc_is_block_mode(PHP4=4.0.2,PHP5)mcrypt_enc_is_block_mode检测打开的模式是否以分组方式输出说明boolmcrypt_enc_is_block_mode(resource$td)打开的模式是否以分组方式输
标签: PHP:mcrypt_encrypt()的用法_Mcrypt函数
本文链接地址:https://www.jiuchutong.com/biancheng/287417.html 转载请保留说明!友情链接: 武汉网站建设