牛骨文教育服务平台(让学习变的简单)
博文笔记

php 基于PKCS7算法的加解密

创建时间:2018-01-15 投稿人: 浏览次数:598
/**
 * PKCS7Encoder class
 *
 * 提供基于PKCS7算法的加解密接口.
 */
class PKCS7Encoder
{
	public static $block_size = 32;


	/**
	* 对需要加密的明文进行填充补位
	* @param $text 需要进行填充补位操作的明文
	* @return 补齐明文字符串
	*/
	function encode($text)
	{
		$block_size = self::$block_size;
		$text_length = strlen($text);
		//计算需要填充的位数
		$amount_to_pad = $block_size - ($text_length % $block_size);
		if ( $amount_to_pad == 0 )
			$amount_to_pad = $block_size;
		//获得补位所用的字符
		$pad_chr = chr($amount_to_pad);
		$tmp = "";
		for ( $index = 0; $index < $amount_to_pad; $index++ ) 
			$tmp .= $pad_chr;
		return $text . $tmp;
	}


	/**
	* 对解密后的明文进行补位删除
	* @param decrypted 解密后的明文
	* @return 删除填充补位后的明文
	*/
	function decode($text)
	{
		$pad = ord(substr($text, -1));
		if ($pad < 1 || $pad > self::$block_size) 
			$pad = 0;
		return substr($text, 0, (strlen($text) - $pad));
	}
}

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。