검색결과 리스트
php에 해당되는 글 22건
- 2020.04.08 로그인 시 비밀번호 javascript 암호화 -> php 복호화
글
로그인 시 암호화 후 복호화하는 것을 java로 정리했었는데, PHP로도 같은 내용을 정리해둔다.
자바스크립트와 PHP코드간에 암호화 통신하기 (Encrypt with Javascript, Decrypt with PHP)
자바스크립트에서 CryptoJS 라이브러리를 이용해 데이터를 암호화를 하고 PHP에서 복호화 하는 예제입니다.
(This is the way how to encrypt data with Javascript and decrypt it with PHP)
1) CryptoJS 다운로드
https://code.google.com/archive/p/crypto-js/downloads
2) JAVASCRIPT
var key = CryptoJS.enc.Hex.parse("1234567811111111abcdefabcd123123");
var iv = CryptoJS.enc.Hex.parse("abcd1231231234567811111111abcdef");
function Encrypt(value) {
var encrypted = CryptoJS.AES.encrypt(value, key, {iv:iv,mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7});
encrypted = encrypted.ciphertext.toString(CryptoJS.enc.Base64);
return encodeURIComponent(encrypted);
}
3) PHP
class AESCrypt
{
var $skey;
var $iv;
function setKey($KEY, $IV)
{
$this->skey = $KEY;
$this->iv = $IV;
}
function decrypt ($value)
{
$value = base64_decode($value);
// PHP7.2 이상부터 DEPRECATED
//$output = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $this->skey, $value, MCRYPT_MODE_CBC, $this->iv) ;
$output = openssl_decrypt($value, 'AES-128-CBC', $this->skey, OPENSSL_RAW_DATA, $this->iv);
$output = $this->pkcs5_unpad($output);
return $this->filter($output);
}
function pkcs5_unpad($text)
{
if(is_empty($text)) {
return $text;
}
$len = strlen($text);
$pad = ord( $text[$len-1] );
if ($pad > $len) {
return $text;
}
if (!strspn($text, chr($pad), $len - $pad)) {
return $text;
}
return substr($text, 0, -1 * $pad);
}
function filter($par)
{
$par = htmlspecialchars($par);
$par = strip_tags($par);
// PHP7.0 이상부터 DEPRECATED
// mysqli_real_escape_string을 사용하거나 xss clean하기 (필자는 CI의 xss clean처리)
//$par = mysql_real_escape_string($par);
$par = str_replace("'","\"",$par);
$par = str_replace("`","\"",$par);
$par = trim($par);
return $par;
}
}
$mcrypt = new AESCrypt();
$key = attemptpack("1234567811111111abcdefabcd123123");
$iv = attemptpack("abcd1231231234567811111111abcdef");
$mcrypt->setKey($key,$iv);
// Decryption
$mydata = $mcrypt->decrypt($_GET['data']);
function attemptpack($s) {
$p=pack("H*", $s);
return $p;
}
'-- PHP' 카테고리의 다른 글
gsmtp를 이용해 sendmail 보낼 때 BadCredentials 해결 (0) | 2021.03.27 |
---|---|
PHP startsWith, endsWith (0) | 2018.04.16 |
PHP Magic Method (특수메소드) (0) | 2017.05.10 |
PHP 결과에 생기는  값 제거 (0) | 2016.05.23 |
PHP5.3에서 json_encode 후 한글 깨짐 (0) | 2016.04.21 |
RECENT COMMENT