Magento CE использует шифрование MD5.. Насколько сложно перейти на лучший метод шифрования?


Быстрый буфер, я очень мало знаю о методах шифрования и о том, как они реализованы, я просто немного знаю о качестве и важности хорошего и плохого метода шифрования. Насколько я понимаю, Magento CE использует очень слабый метод шифрования MD5, который широко известен как тусклый и должен даже перестать использоваться. Однако Magento EE использует SHA-256, который известен как гораздо более сильная альтернатива.

Как двусторонний вопрос, являются ли мысли Magentos о том, чтобы CE использовал MD5 строго бизнес-решением, чтобы подтолкнуть поставщиков к EE для более сильного метода?

И насколько сложно было бы обновить текущий метод CE с MD5, чтобы сказать SHA-256 самостоятельно, без необходимости Magento внедрять изменения для нас?

Спасибо!

Author: ne0nlight, 2016-09-08

1 answers

Magento использует метод getHash() в основном помощнике:
app/code/core/Mage/Core/Helper/Data.php

public function getHash($password, $salt = false)
{
    return $this->getEncryptor()->getHash($password, $salt);
}

Если вы посмотрите на метод getEncryptor(), вы увидите, что вы можете определить свою собственную модель шифрования:

public function getEncryptor()
{
    if ($this->_encryptor === null) {
        $encryptionModel = (string)Mage::getConfig()->getNode(self::XML_PATH_ENCRYPTION_MODEL);
        if ($encryptionModel) {
            $this->_encryptor = new $encryptionModel;
        } else {
            $this->_encryptor = Mage::getModel('core/encryption');
        }

        $this->_encryptor->setHelper($this);
    }
    return $this->_encryptor;
}

Вам нужно создать новый узел xml global/helpers/core/encryption_model, в котором вы можете определить свою собственную модель. И если вы расширите свою новую модель шифрования с Mage_Core_Model_Encryption, вы можете использовать все основные функции и просто перезаписать конкретный метод:

public function hash($data)
{
    return md5($data);
}

Я не рекомендую вам менять метод хэширования в производстве Система, потому что если вы измените метод хеширования, ваш существующий клиент больше не сможет войти в систему.

 1
Author: Pawel, 2016-09-08 17:55:14