Обратите внимание, что вы на самом деле создаете формат хранилища ключей по умолчанию, предполагая, что этот файл не существует на момент запуска keytool
;через Java 8 по умолчанию используется JKS, но с 9 и выше - PKCS12.(Присвоение имени файлу something.jks
не контролирует формат, больше, чем присвоение ему имени something.lollipop
сделает его сладким для ребенка.)
Если вы укажете -storepass whatever
в командной строке, как вы указали, он долженне запрашивать пароль хранилища ключей - по крайней мере, не для этой операции;если вы снова запустите keytool
для (повторного) использования того же файла, будет выдан , если вы снова не укажете его в командной строке .Точно так же, если вы указываете -keypass whatever
в командной строке, при необходимости в зависимости от операции он не должен запрашивать пароль ключа.
Для JKS JCEKS и PKCS12 пароль (и) не хранится ввсе. Это было бы крайне небезопасно.Вместо этого пароль (и) плюс «соль» (рандомизированное значение) обрабатываются односторонним алгоритмом «получения ключа» для создания ключа , используемого для шифрования по крайней мере записей закрытого ключа вхранилище ключей и аутентифицировать (MAC) все хранилище ключей.PKCS12, реализованный в Java (слабо), шифрует сертификаты, а также приватные ключи;JKS и JCEKS нет.PKCS12, реализованный в Java, может не поддерживать пароль закрытого ключа, отличный от пароля хранилища.
Если вы не можете или не можете ввести правильный пароль (и), когда с использованием файла хранилища ключей, он может не работать в зависимости от того, какие именно операции вы пытаетесь выполнить, поэтомуэто ваша работа - помнить их и, если необходимо, передавать или распространять их.Если вам нужно сделать это в масштабе, трудно управляемом вручную, есть инструменты для управления паролями - которые могут обрабатывать пароли для всех вещей, а не только для хранилищ ключей Java - разных видов и из множества источников.
Для хранилищ ключей, не основанных на файлах, таких как PKCS11 в некоторых системах или хранилище, предоставляемое ОС в Windows, способ реализации и использования пароля - если вообще - зависит от особенностей этого хранилища ключей, хотя сохранение пароля будетобычно плохая или плохая практика.