Как зашифровать строку в Java, используя Windows DPAPI, используя системный контекст вместо пользовательского? - PullRequest
1 голос
/ 17 марта 2019

Я пытаюсь зашифровать пароль для хранения в нескольких экземплярах моей программы, но он должен быть в состоянии расшифровать все пользователи на машине. Я уже искал варианты, и мне рекомендовали javaDPAPI . Тем не менее, это кажется только для шифрования на основе текущего пользовательского контекста.

На основании документации Microsoft кажется, что есть способ сделать это, но я не уверен, как это сделать, и я не очень знаком с Java и никогда не делал ничего подобного.

1 Ответ

0 голосов
/ 06 июля 2019

Вам необходимо установить Boolean во втором конструкторе DataProtector, упомянутом здесь до true.

Это требует некоторой адаптации в классе, с которым вы связаны:

изменение this.protector = new DataProtector() на

this.protector = new DataProtector(true) должно сделать это, я думаю.

Вы даже можете добавить уникальный байтовый массив проекта «энтропия», чтобы только тот, кто знает эту энтропию, мог расшифровать секрет, а другие программы - нет.Это также часть оригинального дизайна Microsoft.

...