如果https已经加密了GET请求,则sha加密重要吗?

时间:2019-10-10 03:23:24

标签: security https sha

我正在查看微信的文档,发现他们正在使用SHA-1。我觉得这并不安全,但是我的朋友说“没关系,我们使用https”,所以我想知道使用SHA-1或其他工具是否重要? https何时加密我们的请求?

谢谢!

这是微信的文件: https://developers.weixin.qq.com/doc/offiaccount/en/Basic_Information/Access_Overview.html

private function checkSignature()
{
    $signature = $\GET["signature"];
    $timestamp = $\GET["timestamp"];
    $nonce = $\GET["nonce"];
    $token = TOKEN;
    $tmpArr = array($token, $timestamp, $nonce);
    sort($tmpArr, SORT_STRING);
    $tmpStr = implode( $tmpArr );
    $tmpStr = sha1( $tmpStr );
    if( $tmpStr == $signature ){
        return true;
    }else{
        return false;
    }
}

2 个答案:

答案 0 :(得分:0)

SHA-1是一种单向哈希函数...尽管在大多数情况下不应该使用它,但是在您的情况下,因为您将其用于微信,所以别无选择,只能使用它,除非微信修改在那里实施。

还要回答您的另一个问题,即HTTPS对您的请求进行加密时,所以HTTPS是一种协议,可确保对移动中的数据进行保护和加密。

当浏览器尝试访问受SSL保护的网站时,浏览器和Web服务器使用称为“ SSL握手”的过程建立SSL连接(请参见下图)。请注意,SSL握手对用户是不可见的,并且会立即发生。

SSL Handshake

基本上,使用三个密钥来建立SSL连接:公共,私有和会话密钥。用公钥加密的任何内容都只能用私钥解密,反之亦然。

由于使用私钥和公钥进行加密和解密需要大量处理能力,因此仅在SSL握手期间使用它们来创建对称会话密钥。建立安全连接后,会话密钥用于加密所有传输的数据。

答案 1 :(得分:0)

SHA-1是一种单向哈希函数。在大多数情况下应避免使用此方法,但在您的情况下,微信无法为您提供任何替代选择(尽管微信当然可以在将来修改其实现)。

还可以回答您的其他问题,即HTTPS何时加密您的请求; HTTPS是一种协议,可确保对移动中的数据进行安全保护和加密。

当浏览器尝试访问受SSL保护的网站时,浏览器和Web服务器将进入一系列消息交换,这也称为“ SSL握手”。 SSL握手发生在幕后,对用户透明。

握手过程导致使用公共和私有密钥对建立会话密钥。然后,使用会话密钥来建立SSL连接。

由于对称加密在功率方面更有效,因此仅在SSL握手期间使用PKI部分来建立对称会话密钥。使用共享的对称密钥对运动中的数据进行加密。