Исходные типы прекрасны, когда они выражают то, что вы хотите выразить.
Например, функция десериализации может возвращать List
, но она не знает тип элемента списка. Таким образом, List
является подходящим типом возврата.
3,3 миллиона лет, если я правильно сделал математику.
Я посмотрел источник для keytool, http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/sun/security/ tools / KeyTool.java , и похоже, что срок действия хранится в секундах как длинный. Наибольшее значение длинное может удерживать 263 - 1 составляет 106751991167300 секунд, что равно 1235555453 дням, что составляет 3,385,083 года. Могут быть и другие факторы, которые запрещают такое большое значение, но это, по-видимому, максимальная сумма, которую может генерировать инструмент.
Выполняя пробную ошибку, я вижу практический максимум в течение года 9999. На сегодняшний день с двумя созданными таким образом ключами:
keytool -genkey -v -keystore year-9998.keystore -alias myalias -keyalg RSA -keysize 2048 -validity 2914760
keytool -genkey -v -keystore year-10002.keystore -alias myalias -keyalg RSA -keysize 2048 -validity 2916223
Хотя оба ключа, похоже, успешно создаются, проверяя эти клавиши с помощью команд:
keytool -list -v -keystore year-9998.keystore
- работает нормально, давая «Действителен с: Вт 29 августа 11:12:45 CDT 2017 до: чт 01 января 10 : 12: 45 CST 9998 "
keytool -list -v -keystore year-10002.keystore
- Сбой с" ошибкой keytool: java.security.cert.CertificateParsingException: java.io.IOException: Parse Обобщенное время, недопустимый формат "
Итак, я думаю, что практический максимальный срок действия истекает до 10000 года.
Пример «1000 лет»:
Я также создал хранилище ключей KKS «1000 лет» без проблем:
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 365000
Затем проверили для истечения срока действия:
keytool -list -v -keystore my-release-key.keystore
Enter keystore password:
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 1 entry
...
Valid from: Tue Aug 04 15:28:01 BST 2015 until: Mon Dec 05 14:28:01 GMT 3014
Таким образом, ключ действует до пн дек. 05 14:28:01 GMT 3014
jarsigner
(«официальный» инструмент командной строки) разбивается на хранилище ключей, которое я только что создал с действительностью 10 000 000 дней. Итак, теоретически, практический ответ, вероятно, меньше. – Nicolas Raoul 7 September 2015 в 07:32