cryptomute
version requirements
Feistel 네트워크를 통해 형식 보존 암호화를 구현하는 작은 PHP 클래스입니다.
Composer를 통해 cryptomute 설치할 수 있습니다(packagist에는 loostro/ cryptomute 패키지가 있음). composer.json
파일에서 다음을 사용하십시오.
{
"require" : {
"loostro/ cryptomute " : " ^1.0 "
}
}
그리고 다음을 실행하세요: php composer.phar install
. 그 후에는 오토로더를 요구하고 cryptomute 사용할 수 있습니다.
require_once ' vendor/autoload.php ' ;
use cryptomute cryptomute ;
$ cryptomute = new cryptomute (
' aes-128-cbc ' , // cipher
' 0123456789zxcvbn ' , // base key
7 , // number of rounds
);
$ password = ' 0123456789qwerty ' ;
$ iv = ' 0123456789abcdef ' ;
$ plainValue = ' 2048 ' ;
$ encoded = $ cryptomute -> encrypt ( $ plainValue , 10 , false , $ password , $ iv );
$ decoded = $ cryptomute -> decrypt ( $ encoded , 10 , false , $ password , $ iv );
var_dump ([
' plainValue ' => $ plainValue ,
' encoded ' => $ encoded ,
' decoded ' => $ decoded ,
]);
array(3) {
["plainValue"]=>
string(4) "2048"
["encoded"]=>
string(9) "309034283"
["decoded"]=>
string(4) "2048"
}
Cipher는 첫 번째 생성자 인수입니다. 지원되는 암호화 방법은 다음과 같습니다.
암호 | IV |
---|---|
des-cbc | 예 |
aes-128-cbc | 예 |
aes-128-ecb | 아니요 |
aes-192-cbc | 예 |
aes-192-ecb | 아니요 |
camellia-128-cbc | 예 |
camellia-128-ecb | 아니요 |
camellia-192-cbc | 예 |
camellia-192-ecb | 아니요 |
Key는 두 번째 생성자 인수입니다. 모든 라운드 키가 파생되는 기본 키입니다.
Rounds는 세 번째 생성자 인수입니다. 3보다 크거나 같은 홀수여야 합니다. 라운드가 많을수록 안전하지만 속도도 느려집니다. 권장 값은 7 이상입니다.
$minValue
, $maxValue
)최소값과 최대값을 설정합니다. 결과가 범위를 벗어나면 출력이 범위 내에 있을 때까지 다시 암호화(또는 다시 암호 해독)됩니다.
$plainValue
, $base
, $pad
, $password
, $iv
)데이터를 암호화합니다. 다음 인수를 사용합니다:
$plainValue
(문자열) 암호화할 입력 데이터$base
(int) 입력 데이터베이스, 허용되는 값은 2(2진수), 10(10진수) 또는 16(16진수)입니다.$pad
(bool) $maxValue
의 길이와 일치하도록 왼쪽 출력을 채웁니까?$password
(문자열) 암호화 비밀번호$iv
(문자열) 초기화 벡터 - 암호에서 요구하는 경우에만 해당$cryptValue
, $base
, $pad
, $password
, $iv
)데이터를 해독합니다. 다음 인수를 사용합니다:
$cryptValue
(문자열) 복호화할 입력 데이터$base
(int) 입력 데이터베이스, 허용되는 값은 2(2진수), 10(10진수) 또는 16(16진수)입니다.$pad
(bool) $maxValue
의 길이와 일치하도록 왼쪽 출력을 채웁니까?$password
(문자열) 암호화 비밀번호$iv
(문자열) 초기화 벡터 - 암호에서 요구하는 경우에만 해당 cryptomute MIT(MIT) 라이선스에 따라 라이선스가 부여됩니다.