We are trying to set-up magento 2.3.1. We need to migrate only customer data . We simply exported customer data from our old setup ( Magento 1.8.1) and imported in the new set-up. Import was successful & we can see the customer data in admin backend & in the database as well. However, we cannot login from the front end.
Please note that we did not use any migration tools as we didn't have to migrate other things. And we noticed that the password_hash values were same as the one we exported and not appended with :0 or :1 as it happens while using migration tools.
We tried manually appending :0 to the password_hash value. But we were not able to login.
What should we do to ensure login from the front end & our customers get a seamless experience?
Thanks in advance!
Did you check this thread?
I have checked this post. . In fact when I ran php -f bin/magento customer:hash:upgrade we encountered an error. undefined index 0:1 in line 198 in Encryptor.php
I deleted the imported record, imported again, refreshed cache & this time it worked. However, when I repeated same with couple of more lines, it did not work. I am truly perplexed
Only thing I understood clearly is that magento 1 passwaord_hash (md5) ends with :0 & when it gets replaced by a password_hash that ends with :1 (sha 256), the password gets accepted in the front end.
But, I am not yet able to list down the procedure to get it done.
Hi @vismaya ,
As you might know, Magento 2 uses a different encryption model from Magento 1. It uses a new technique of hashing passwords.
I don't think that this command: php -f bin/magento customer:hash:upgrade can work for your whole list of customer passwords. You might need to edit code in your Magento core in order to do it. In case you want to know more about the process, please let me know by replying this comment.
Hope this can help you!
Thank you @Marcus - LitExtension Expert, @Gaurav_Jain02 for the help. Those hints really kept me going. I was able to resolve this as follows. Data exported from Magento 1.8.x had some password_hash values of length 32, some others were of length 65. The values that were of length 65 were of the format ...xxx:yyy..., where ...xxx is encryption of the password of length 32 & ...yyy is the salt encryption of length 32, seperated by : , - totalling to length 65. The password_hash value of length 32 had only encryption of the password.
After going through several posts, I understood that passoword_hash of length 65 could be appended with :0 (as ...xxx:yyy...:0) & imported in Magento 2 & Magento 2 would recognize this as encryption of old format and after first attempt to login, the value automatically changes to the new format SHA -256 encryption with :1 appended at the end. (Essentially :0 &:1 represent the old & new format respectively.
The password_hash values of length 32 were appended with ::0 (as ...x::0 representing encrypted password, no salt, old format) & imported into Magento 2. These also got converted into the new format SHA -256.
This helped us getting through customer data migration
Hi @vismaya ,
It's good to know that. If you have any further queries, don't hesitate to contact me. I'll be happy to help.
Best of luck!