title: Keystore File Tampered With PhoneGap Build (Password Error)
body: <p>So I built a PhoneGap app in May, uploading updated builds on Google Play every week or so. This last time I did it, however, it claimed that my password was incorrect. I've done everything I can think of, but I'm missing something.</p>
  
  <p><strong>The History:</strong></p>
  
  <ul>
  <li>Built the .jks in May and (likely cut) and pasted it to the directory where I keep the zip file. (It's got 10,000 days on it, so no problem there.)</li>
  <li>Renamed the .jks to a .keystore extension.</li>
  <li>Routinely used the keystore in PhoneGap Build with the correct certificate password and keystore password when updating the app's code and re-signing the app.</li>
  <li>Tonight, I received an error stating that the password was incorrect. The keystore has remained unchanged since May.</li>
  </ul>
  
  <p><strong>Attempted Solutions</strong></p>
  
  <ul>
  <li>I deleted and reloaded the keystore from PhoneGap build with both (of two) possible aliases, and tried to unlock those files. No dice.</li>
  <li>I went back to the keytool from the command prompt and tried to open it there with the same password, and got this back:</li>
  </ul>
  
  <blockquote>
    <p>keytool error: java.io.IOException: Keystore was tampered with, or
    password was incorrect java.io.IOException: Keystore was tampered
    with, or password was incorrect
            at sun.security.provider.JavaKeyStore.engineLoad(Unknown Source)
            at sun.security.provider.JavaKeyStore$JKS.engineLoad(Unknown Source)
            at sun.security.provider.KeyStoreDelegator.engineLoad(Unknown Source)
            at sun.security.provider.JavaKeyStore$DualFormatJKS.engineLoad(Unknown
    Source)
            at java.security.KeyStore.load(Unknown Source)
            at sun.security.tools.keytool.Main.doCommands(Unknown Source)
            at sun.security.tools.keytool.Main.run(Unknown Source)
            at sun.security.tools.keytool.Main.main(Unknown Source) Caused by: java.security.UnrecoverableKeyException: Password verification
    failed</p>
  </blockquote>
  
  <ul>
  <li>Again, I know the password, so I tried renaming it back to the .jks extension. Same result. No dice.</li>
  <li>I'm left to conclude that my .keystore was tampered with. Beyond changing the extension from .jks to .keystore, I don't know how it could have been.</li>
  </ul>
  
  <p><strong>Questions</strong></p>
  
  <ol>
  <li><strong>What methods are available for me to recover this .keystore file to its original functionality?</strong> Brute force is a bad option only because the original password is over 20 characters long.</li>
  <li><strong>How can I view a list of keystores present my Java keytool?</strong></li>
  <li><strong>Is there a way to transfer to a different keystore without having to republish the app in Google Play from scratch?</strong> There aren't a ton of users on it yet, but I don't want to have to do this every three months.</li>
  </ol>