If a = B ^ c; then B = a ^ c (^ is an exclusive or meaning), php converts the character to the binary ascii value when processing the exclusive or character, convert the ascii value to a character after obtaining the result. The principle is that the implementation code is pasted later:
Copy codeThe Code is as follows:
Echo '<meta charset = "UTF-8"> ';
$ Str = 'World, hao ';
Function jiami ($ str, $ key ){
$ Key = md5 ($ key );
$ K = md5 (rand (0,100); // equivalent to a dynamic key
$ K = substr ($ k, 0, 3 );
$ Tmp = "";
For ($ I = 0; $ I <strlen ($ str); $ I ++ ){
$ Tmp. = substr ($ str, $ I, 1) ^ substr ($ key, $ I, 1 );
}
Return base64_encode ($ k. $ tmp );
}
Function jiemi ($ str, $ key ){
$ Len = strlen ($ str );
$ Key = md5 ($ key );
$ Str = base64_decode ($ str );
$ Str = substr ($ str, 3, $ len-3 );
$ Tmp = "";
For ($ I = 0; $ I <strlen ($ str); $ I ++ ){
$ Tmp. = substr ($ str, $ I, 1) ^ substr ($ key, $ I, 1 );
}
Return $ tmp;
}
$ Key = 'cc ';
$ Keys = jiami ($ str, $ key );
Echo 'before encryption: '. $ str.' <br> ';
Echo 'encrypted: '. $ response.' <br> ';
Echo 'decrypted: '. jiemi ($ encrypt, $ key).' <br> ';
With the opportunity to improve, this function implements simple encryption and decryption.