2012-08-06 98 views
3

我想覆蓋/擴展Mage_Core_Encryption_Model來處理舊密碼。覆蓋法師核心加密模塊模塊

我正在將舊網站數據遷移到magento。我的舊網站加密方法是Sha-1。但是magento在覈心加密方法中使用md5 +文本。我已經手動更改了核心模塊並正確遷移,但現在我想爲此創建一個自定義模塊(在沒有加密的情況下遷移,使用sha-1覆蓋md5方法後)

如何創建自定義模塊那會覆蓋我改變的核心代碼?

+0

和哪一部分在這裏給你的麻煩?很高興知道你在做什麼,下次把這樣簡短的質量保證問題留給推特?嘗試解釋你的目標以及你迄今在這裏做了什麼。 – 2012-08-06 11:57:17

+0

我正在將舊網站數據遷移到magento。我的舊網站加密方法是Sha-1。但是magento在覈心加密方法中使用md5 +文本。我手動更換核心模塊並正確遷移。但是現在我想爲它創建一個自定義模塊(遷移沒有加密,遷移之後用sha-1覆蓋md5方法)有什麼想法爲這個需求創建一個自定義模塊? – sanji 2012-08-06 12:03:14

+1

編輯你的問題:)現在想想當你首先問的時候,人們應該怎麼知道這些細節? – 2012-08-06 12:06:01

回答

10

如果我理解正確,你需要一個模塊來替換Magento中的MD5哈希機制與SHA1?

我不會在這裏創建一個完整的模塊,而只是關鍵部分。如果你有興趣,但作爲一個完整的例子來參考,我創建了一個模塊一陣子回來,它用SHA512代替MD5哈希,你可以看看 - https://github.com/drewhunter/BetterHash - 你顯然需要稍微修改它來處理SHA1)

所以基本上你需要重寫Mage_Core_Model_Encryption

你模塊的config.xml的hash()方法要求如下:

文件:應用程序/代碼/本地/ Yourcompany/Yourmodule的/ etc/config.xml中

<?xml version="1.0"?> 

<config> 
    <modules> 
     <Yourcompany_Yourmodule> 
      <version>1.0.0</version> 
     </Yourcompany_Yourmodule> 
    </modules> 
    <global> 
     <helpers> 
      <core> 
       <encryption_model>Yourcompany_Yourmodule_Model_Hash</encryption_model> 
      </core> 
     </helpers> 
    </global> 
</config> 

然後趁改寫:

文件:應用程序/代碼/本地/ Yourcompany/Yourmodule /型號/ Hash.php

<?php 

class Yourcompany_Yourmodule_Model_Hash extends Mage_Core_Model_Encryption 
{ 
    public function hash($data) 
    { 
     return sha1($data); 
    } 
} 
+0

謝謝。我會盡力在此創建。 – sanji 2012-08-06 12:43:16