Figuring out keyhash’s is one of the most painful things a Corona SDK developer can go through if you don’t understand what hasheys are and don’t understand what the command you are typing in really do.
There are two main points of failure (well three, but one of them has two issues).
One: The command line you are typing in is assuming you are going to change values to match your reality. You can’t blindly cut and paste the command and have it work. Where you have your keystore’s stored is very likely not where that command is looking for them. It can’t find your real keystore and outputs an error, but because the string is 3 commanded piped into each other, the final command generates a keyhash based on the string “File not found”, not your valid keystore. If you don’t type the password in correctly, it will still generate a keyhash, but based on the string “invalid password” not your valid keystore.
The sub-issue with this is the default one most people use are using the Android debug keystore. However, Corona SDK’s Android debug keystore is a different file than the default Android debug keystore and therefore will not match. I don’t recommend using the debug keystore for Facebook testing because you will forget to change it to your release keystore when you go live and your facebook will be broken.
Two: There are a couple of different implementations of OpenSSL for windows. The one you have likely isn’t generating the keyhash that Facebook is looking for.
Please read this tutorial carefully and you should get a valid keyhash.
http://coronalabs.com/blog/2013/07/30/understanding-facebook-authentication/