php中AES加密解密的例子小结_PHP
aesDemo.php:
例子,
复制代码 代码如下:
require_once('./AES.php');
//$aes = new AES();
$aes = new AES(true);// 把加密后的字符串按十六进制进行存储
//$aes = new AES(true,true);// 带有调试信息且加密字符串按十六进制存储
$key = "this is a 32 byte key";// 密钥
$keys = $aes->makeKey($key);
$encode = "123456";// 被加密的字符串
$ct = $aes->encryptString($encode, $keys);
echo "encode = ".$ct."
";
$cpt = $aes->decryptString($ct, $keys);
echo "decode = ".$cpt;
?>
例子、AES加密类
复制代码 代码如下:
//php aes加密类
class AESMcrypt {
public $iv = null;
public $key = null;
public $bit = 128;
private $cipher;
public function __construct($bit, $key, $iv, $mode) {
if(empty($bit) || empty($key) || empty($iv) || empty($mode))
return NULL;
$this->bit = $bit;
$this->key = $key;
$this->iv = $iv;
$this->mode = $mode;
switch($this->bit) {
case 192:$this->cipher = MCRYPT_RIJNDAEL_192; break;
case 256:$this->cipher = MCRYPT_RIJNDAEL_256; break;
default: $this->cipher = MCRYPT_RIJNDAEL_128;
}
switch($this->mode) {
case 'ecb':$this->mode = MCRYPT_MODE_ECB; break;
case 'cfb':$this->mode = MCRYPT_MODE_CFB; break;
case 'ofb':$this->mode = MCRYPT_MODE_OFB; break;
case 'nofb':$this->mode = MCRYPT_MODE_NOFB; break;
default: $this->mode = MCRYPT_MODE_CBC;
}
}
public function encrypt($data) {
$data = base64_encode(mcrypt_encrypt( $this->cipher, $this->key, $data, $this->mode, $this->iv));
return $data;
}
public function decrypt($data) {
$data = mcrypt_decrypt( $this->cipher, $this->key, base64_decode($data), $this->mode, $this->iv);
$data = rtrim(rtrim($data), "..");
return $data;
}
}
//使用方法
$aes = new AESMcrypt($bit = 128, $key = 'abcdef1234567890', $iv = '0987654321fedcba', $mode = 'cbc');
$c = $aes->encrypt('haowei.me');
var_dump($aes->decrypt($c));
例子、附一个可加密可解密类
复制代码 代码如下:
/**
* AES加密、解密类
* @author hushangming
*
* 用法:
*
<br> * // 实例化类<br> * // 参数$_bit:格式,支持256、192、128,默认为128字节的<br> * // 参数$_type:加密/解密方式,支持cfb、cbc、nofb、ofb、stream、ecb,默认为ecb<br> * // 参数$_key:密钥,默认为abcdefghijuklmno<br> * $tcaes = new TCAES(); <br> * $string = 'laohu';<br> * // 加密<br> * $encodeString = $tcaes->encode($string);<br> * // 解密<br> * $decodeString = $tcaes->decode($encodeString);<br> *
*/
class TCAES{
private $_bit = MCRYPT_RIJNDAEL_256;
private $_type = MCRYPT_MODE_CBC;
//private $_key = 'abcdefghijuklmno0123456789012345';
private $_key = 'abcdefghijuklmno'; // 密钥
private $_use_base64 = true;
private $_iv_size = null;
private $_iv = null;
/**
* @param string $_key 密钥
* @param int $_bit 默认使用128字节
* @param string $_type 加密解密方式
* @param boolean $_use_base64 默认使用base64二次加密
*/
public function __construct($_key = '', $_bit = 128, $_type = 'ecb', $_use_base64 = true){
// 加密字节
if(192 === $_bit){
$this->_bit = MCRYPT_RIJNDAEL_192;
}elseif(128 === $_bit){
$this->_bit = MCRYPT_RIJNDAEL_128;
}else{
$this->_bit = MCRYPT_RIJNDAEL_256;
}
// 加密方法
if('cfb' === $_type){
$this->_type = MCRYPT_MODE_CFB;
}elseif('cbc' === $_type){
$this->_type = MCRYPT_MODE_CBC;
}elseif('nofb' === $_type){
$this->_type = MCRYPT_MODE_NOFB;
}elseif('ofb' === $_type){
$this->_type = MCRYPT_MODE_OFB;
}elseif('stream' === $_type){
$this->_type = MCRYPT_MODE_STREAM;
}else{
$this->_type = MCRYPT_MODE_ECB;
}
// 密钥
if(!empty($_key)){
$this->_key = $_key;
}
// 是否使用base64
$this->_use_base64 = $_use_base64;
$this->_iv_size = mcrypt_get_iv_size($this->_bit, $this->_type);
$this->_iv = mcrypt_create_iv($this->_iv_size, MCRYPT_RAND);
}
/**
* 加密
* @param string $string 待加密字符串
* @return string
*/
public function encode($string){
if(MCRYPT_MODE_ECB === $this->_type){
$encodeString = mcrypt_encrypt($this->_bit, $this->_key, $string, $this->_type);
}else{
$encodeString = mcrypt_encrypt($this->_bit, $this->_key, $string, $this->_type, $this->_iv);
}
if($this->_use_base64)
$encodeString = base64_encode($encodeString);
return $encodeString;
}
/**
* 解密
* @param string $string 待解密字符串
* @return string
*/
public function decode($string){
if($this->_use_base64)
$string = base64_decode($string);
$string = $this->toHexString($string);
if(MCRYPT_MODE_ECB === $this->_type){
$decodeString = mcrypt_decrypt($this->_bit, $this->_key, $string, $this->_type);
}else{
$decodeString = mcrypt_decrypt($this->_bit, $this->_key, $string, $this->_type, $this->_iv);
}
return $decodeString;
}
/**
* 将$string转换成十六进制
* @param string $string
* @return stream
*/
private function toHexString ($string){
$buf = "";
for ($i = 0; $i $val = dechex(ord($string{$i}));
if(strlen($val) $val = "0".$val;
$buf .= $val;
}
return $buf;
}
/**
* 将十六进制流$string转换成字符串
* @param stream $string
* @return string
*/
private function fromHexString($string){
$buf = "";
for($i = 0; $i $val = chr(hexdec(substr($string, $i, 2)));
$buf .= $val;
}
return $buf;
}
}

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











HTTP 상태 코드 460 해독: 이 오류가 발생하는 이유는 무엇입니까? 소개: 일상적인 네트워크 사용 중에 HTTP 상태 코드를 포함한 다양한 오류 메시지가 나타나는 경우가 많습니다. 이러한 상태 코드는 요청 처리를 나타내기 위해 HTTP 프로토콜에 의해 정의된 메커니즘입니다. 이러한 상태 코드 중에는 비교적 드문 오류 코드, 즉 460이 있습니다. 이 문서에서는 이 오류 코드를 자세히 살펴보고 이 오류가 발생하는 이유를 설명합니다. HTTP 상태 코드 460의 정의: 먼저 HTTP 상태 코드의 기본을 이해해야 합니다.

Apple 휴대폰에서 사용자는 필요에 따라 사진 앨범을 암호화할 수 있습니다. 일부 사용자는 설정 방법을 모릅니다. 암호화해야 할 사진을 메모에 추가한 후 메모를 잠글 수 있습니다. 다음으로 관심 있는 사용자들을 위해 편집자가 모바일 사진 앨범 암호화 설정 방법을 소개합니다. Apple 휴대폰 튜토리얼 iPhone 사진 앨범 암호화 설정 방법 A: 암호화해야 할 사진을 메모에 추가한 후 자세한 소개를 위해 메모 잠금으로 이동합니다. 1. 사진 앨범에 들어가서 암호화해야 할 사진을 선택합니다. 암호화한 후 아래의 [추가]를 클릭하세요. 2. [메모에 추가]를 선택하세요. 3. 메모를 입력하고, 방금 작성한 메모를 찾아 입력한 후 오른쪽 상단의 [보내기] 아이콘을 클릭하세요. 4. 아래 [기기 잠금]을 클릭하세요.

폴더 암호화는 복호화 비밀번호를 아는 사람만 파일에 액세스할 수 있도록 폴더의 내용을 암호화하는 일반적인 데이터 보호 방법입니다. 폴더를 암호화할 때 파일을 압축하지 않고 비밀번호를 설정하는 몇 가지 일반적인 방법이 있습니다. 먼저, 운영 체제와 함께 제공되는 암호화 기능을 사용하여 폴더 비밀번호를 설정할 수 있습니다. Windows 사용자의 경우 다음 단계에 따라 설정할 수 있습니다. 암호화할 폴더를 선택하고 해당 폴더를 마우스 오른쪽 버튼으로 클릭한 후 "속성"을 선택합니다.

오늘날의 업무 환경에서는 모든 사람의 기밀성에 대한 인식이 점점 더 강해지고 있으며, 소프트웨어 사용 시 파일을 보호하기 위해 암호화 작업을 수행하는 경우가 많습니다. 특히 핵심문서에 대해서는 비밀유지의식을 높이고 문서의 보안을 항상 최우선으로 삼아야 한다. 그래서 모두가 단어 해독을 얼마나 잘 이해하고 있는지 모르겠습니다. 구체적으로 어떻게 작동합니까? 오늘은 아래 설명을 통해 실제로 단어암호화 과정을 보여드리겠습니다. 단어암호화 지식이 필요한 친구들은 오늘 강좌를 놓치지 마세요. 파일을 보호하려면 먼저 복호화 작업이 필요합니다. 이는 파일이 문서로 보호된다는 의미입니다. 파일에 이 작업을 수행한 후 파일을 다시 열면 프롬프트가 나타납니다. 파일을 복호화하는 방법은 비밀번호를 입력하는 것이므로 직접 복호화할 수 있습니다.

PyCharm 인터프리터가 추가한 트릭 복호화 PyCharm은 많은 Python 개발자가 선호하는 통합 개발 환경(IDE)으로, 개발 효율성을 향상시키는 많은 강력한 기능을 제공합니다. 그 중 인터프리터 설정은 PyCharm의 중요한 부분입니다. 인터프리터를 올바르게 설정하면 개발자가 코드를 원활하게 실행하고 프로그램을 디버깅하는 데 도움이 될 수 있습니다. 이 기사에서는 PyCharm 인터프리터 추가 사항을 해독하는 몇 가지 기술을 소개하고 이를 특정 코드 예제와 결합하여 인터프리터를 올바르게 구성하는 방법을 보여줍니다. Py에서 인터프리터 추가 및 선택

편집기에서는 세 가지 암호화 및 압축 방법을 소개합니다. 방법 1: 암호화 가장 간단한 암호화 방법은 파일을 암호화할 때 설정하려는 비밀번호를 입력하면 암호화 및 압축이 완료됩니다. 방법 2: 자동 암호화 일반 암호화 방법에서는 각 파일을 암호화할 때 비밀번호를 입력해야 합니다. 많은 수의 압축 패키지를 암호화하려는 경우 비밀번호가 동일하면 WinRAR에서 자동 암호화를 설정할 수 있습니다. 파일을 정상적으로 압축하면 WinRAR은 압축된 각 패키지에 비밀번호를 추가합니다. 방법은 다음과 같습니다: WinRAR을 열고 설정 인터페이스에서 옵션-설정을 클릭한 후 [압축]으로 전환하고 기본 구성 생성-비밀번호 설정을 클릭합니다. 여기에 설정하려는 비밀번호를 입력하고 확인을 클릭하여 설정을 완료합니다. 교정하다

EZVIZ Cloud에서 비디오를 암호화 해제하는 방법: EZVIZ Cloud에서 비디오를 암호화 해제하는 방법에는 여러 가지가 있으며 그 중 하나는 EZVIZ Cloud 모바일 앱을 사용하는 것입니다. 사용자는 장치 목록에 들어가서 암호를 해독할 카메라를 선택하고 장치 세부 정보 페이지에 들어가기만 하면 됩니다. 장치 세부 정보 페이지에서 "설정" 옵션을 찾은 다음 "비디오 암호화"를 선택하여 관련 설정을 지정합니다. 비디오 암호화 설정 인터페이스에서 비디오 암호화를 끄는 옵션을 선택하고 설정을 저장하여 암호 해독 작업을 완료할 수 있습니다. 이 간단한 단계를 통해 사용자는 쉽게 비디오의 암호를 해독할 수 있으며 카메라 사용 편의성이 향상됩니다. EZVIZ Cloud의 컴퓨터 클라이언트를 사용하는 경우 유사한 단계를 통해 비디오 암호화를 취소할 수도 있습니다. 로그인하여 해당 카메라를 선택하고 장치 세부 정보 인터페이스로 들어간 다음 설정에서 비디오 추가를 찾으세요.

원저자: Meteor, ChainCatcher 원편집자: Marco, ChainCatcher 최근 전체 체인 상호 운용성 프로토콜인 Analog가 1,600만 달러의 자금 조달을 공개하면서 대중의 주목을 받았습니다. 투자 기관으로는 TribeCapital, NGCVentures, Wintermute, GSR, NEAR, OrangeDAO가 있습니다. , Mike Novogratz의 대체 자산 관리 회사 Samara Asset Group, Balaji Srinivasan 등 2023년 말, Analog는 X 플랫폼의 공개 테스트넷 등록 이벤트에 대한 정보를 공개하여 업계에 소란을 일으켰습니다.
