daycry/encryption

为 Codeigniter 4 提供加密功能

v2.1.8 2024-07-18 08:39 UTC

This package is auto-updated.

Last update: 2024-09-18 09:10:43 UTC


README

Donate

加密库

Codeigniter 4 与 CryptoJsAes 兼容的加密

Build status Coverage status Downloads GitHub release (latest by date) GitHub stars GitHub license

通过 composer 安装

使用 composer install 安装此包

> composer require daycry/encryption

手动安装

下载此仓库,然后通过编辑 app/Config/Autoload.php 并将 Daycry\Encryption 命名空间添加到 $psr4 数组中来启用它。例如,如果您将其复制到 app/ThirdParty

$psr4 = [
    'Config'      => APPPATH . 'Config',
    APP_NAMESPACE => APPPATH,
    'App'         => APPPATH,
    'Daycry\Encryption' => APPPATH .'Libraries/encryption/src',
];

使用库

$encryption = new \Daycry\Encryption\Encryption();
$data = $encryption->encrypt( 'data' );
var_dump( $data );

$encryption = new \Daycry\Encryption\Encryption();
$data = $encryption->decrypt( 'data' );
var_dump( $data );

设置加密算法

$encryption = new \Daycry\Encryption\Encryption();
$data = $encryption->setCipher( 'AES-256-CTR' )->encrypt( 'data' );
var_dump( $data );

设置密钥

$encryption = new \Daycry\Encryption\Encryption();
$encrypt = $obj->setCipher( 'AES-256-CTR' )->setKey( '%T3sT1nG$' )->encrypt( 'data', true );
var_dump( $data );

获取可用算法

var_dump( openssl_get_cipher_methods() );

CryptoJs 兼容性返回密钥

$result = \Daycry\Encryption\CryptoJsAes::encrypt( "Hello", "123456", true );

$textPlain = \Daycry\Encryption\CryptoJsAes::decrypt( $result );

CryptoJs 兼容性不返回密钥

$result = \Daycry\Encryption\CryptoJsAes::encrypt( "Hello", "123456", false );

$textPlain = \Daycry\Encryption\CryptoJsAes::decrypt( $result, "123456" );

如果您想在 JavaScript 中进行加密/解密,您必须在视图中添加这些文件。

./public/assets

示例

<script type="text/javascript" src="<?php echo base_url("assets/js/jquery.min.js")?>"></script>
<script type="text/javascript" src="<?php echo base_url("assets/js/crypto-js.min.js")?>"></script>
<script type="text/javascript" src="<?php echo base_url("assets/js/encryption.js")?>"></script>

<script>
	Encryption.getInstance().setKey("hello");
	var encrypted = Encryption.getInstance().encrypt("hello text");
	var decrypted = Encryption.getInstance().decrypt(encrypted);
	console.log(decrypted);
</script>

加密和解密函数接受密钥作为第二个参数。

如何运行测试

cd vendor\daycry\encryption\
composer install
vendor\bin\phpunit