jQuery加密数据

实际上我的问题很荒谬。 我通过添加标题提供安全性。 当我添加加密数据时,浏览器会出错。</ p>

代码源输出:</ p>

 标题:{
“授权” :“���6���/��O��u�f��v2��”,
},
</ code> </ pre>

</ p>

浏览器检测到:</ p>

 标题:{
“授权”:“���6��� /��O��
u�f��v2��“,
},
</ code> </ pre>

PHP代码:</ p>

 标题:{
“授权”:“&lt;?php echo $ _SESSION ['sID'];?&gt;”,
},
</ code> </ pre>

我的会话类:</ p>

 类会话{

公共函数__construct(){
if(session_status()== PHP_SESSION_NONE){
session_start( );
}
\ self :: Encrypt('sID',session_id());
}

公共静态函数Encrypt($ Name,$ Value){
if(!is_null($ Value) ){
$ _S ESSION [$ Name] = openssl_encrypt($ Value,Config :: Get('Encrypt / Type'),Config :: Get('Encrypt / Password'),OPENSSL_RAW_DATA,Config :: Get('Encrypt / Session'));

返回$ _SESSION [$ Encrypt];
}
返回false;
}
}
</ code> </ pre>

有什么问题? 有没有人有想法? 最好的问候!</ p>

另外: str_replace </ code>和 trim </ code>尝试了它的功能。</ p>
</ div>

展开原文

原文

Actually my problem is ridiculous. I provide security by adding header. When I add the encrypted data, the browser gives an error.

Code source output :

headers: {
    "Authorization": "���6���/��O��u�f�߁v2��",
},

Console Output

Browser detects:

headers: {
    "Authorization": "���6���/��O��
u�f�߁v2��",
},

PHP Code :

 headers: {
     "Authorization": "<?php echo $_SESSION['sID']; ?>",
 },

My Session Class :

class Session {

    public function __construct() {
        if(session_status() == PHP_SESSION_NONE) {
            session_start();
        }
        self::Encrypt('sID', session_id());
    }

    public static function Encrypt($Name, $Value) {
        if(!is_null($Value)) {
            $_SESSION[$Name] = openssl_encrypt($Value, Config::Get('Encrypt/Type'), Config::Get('Encrypt/Password'), OPENSSL_RAW_DATA, Config::Get('Encrypt/Session'));
            return $_SESSION[$Encrypt];
        }
        return false;
    }
 }

What is the problem? Does anyone have an idea ? Best regards !

Also : str_replace and trim tried its functions.

duankuang1046
duankuang1046 php.net/manual/en/function.bin2hex.php
2 年多之前 回复

1个回答



设置 OPENSSL_RAW_DATA </ code>标志的 openssl_encrypt()</ code>的返回值一般 不是可打印的字符串。 它通常包含无效的UTF-8字符,有时可能包含会干扰Javascript代码解析的字符,如引号。</ p>

不要使用 OPENSSL_RAW_DATA </ code >在这里举旗。 如果没有设置此标志,该函数将返回Base64编码的输出,这更适合您的需要。</ p>
</ div>

展开原文

原文

The return value of openssl_encrypt() with the OPENSSL_RAW_DATA flag set will generally not be a printable string. It will usually contain invalid UTF-8 characters, and may sometimes include characters which will interfere with Javascript code parsing, like quotation marks.

Don't use the OPENSSL_RAW_DATA flag here. Without this flag set, the function will return Base64-encoded output, which is more appropriate for your needs.

douyue8364
douyue8364 这并不是一种安全措施。 它在加密后应用,将加密数据转换为可打印格式。
2 年多之前 回复
duancan5327
duancan5327 base64可以轻松解决。 你还有其他建议吗? 一个好的黑客可以猜到他的session_id。
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐