2015-12-29 2 views
0

Я новичок в Java, и я работаю над проектом.сохранение строки в java-программе

Мне было интересно, можно ли сохранить строку в скомпилированной java-программе, а не в файле. Я уже могу запросить и получить доступ к базе данных с помощью JDBC.

Я хочу, чтобы для каждого пользователя был особый ключ, но я не хочу, чтобы он был доступен пользователю. И как только вы перезагрузили компьютер, эта строка все равно будет сохранена. Возможно ли это? Я не знаю, как это возможно.

Я ценю любую помощь!

+0

Я неясный на то, что вы на самом деле т чтобы достичь. Можете ли вы подробнее объяснить проблему, которую пытаетесь решить? – Onots

+0

уверен, я постараюсь. Я просто хочу иметь уникальный скрытый «ключ» для каждого пользователя, которого они не могли видеть. Поскольку они могут передать этот ключ другому пользователю и использовать мою программу. – javajoejuan

+0

Вы должны опубликовать код примера ([Минимальный, Полный, Подтверждаемый пример] (https://stackoverflow.com/help/mcve) или [Short, Self-Contained, Correct Example] (http://sscce.org/)). Включите то, что вы уже пробовали, и где именно вы застряли. См. Дополнительную информацию на странице [Как задать хороший вопрос?] (Https://stackoverflow.com/help/how-to-ask) Спасибо! – Will

ответ

1

специальный ключ? хорошо, вам самое простое решение для этого - это создать четную серию чисел или нечетное число, которое будет отличаться для каждого пользователя.

Теперь для хранения данных, сохранить данные либо в базе данных или в текстовом файле, Сохранение в текстовый файл идет как этот

Прежде всего импорта этого

import java.io.*; 

Вот код для создания и сохранения данных в текстовом файле.

int userSpecialkey = 123;  

File f = new File("FileName.txt"); 

f.createNewFile(); 

BufferedWriter bw = new BufferedWriter(new FileWriter(f)); 

bw.write(userSpecialkey); 

bw.close(); 

простое решение, для шифрования данных, которые вы можете изменить пароль жало в массив символов затем добавить какое-то значение для каждого индекса

String name = "shady"; 
String password = "OnePunchMan"; 

char[] encryptingPassword = password.toCharArray(); 


for(int i=0; i < encryptingPassword.length; i++){ 
    encryptingPassword[i] += '5'; 
} 

Это изменит полукокс в новый полукокс, Для дешифрования

for(int i=0; i < encryptingPassword.length; i++){ 
    encryptingPassword[i] -= '5'; 
} 

`

+0

Спасибо за это, но я не хочу, чтобы пользователи получали этот «ключ» – javajoejuan

+0

Действительно жаль, что я полностью забыл эту часть, я обновляю свой ответ –

2

Обычно (но не всегда) скомпилированная Java-программа распространяется как .jar (или .war или .ear). Это сжатые «архивные» файлы, содержащие файлы классов Java и другие вещи, необходимые для запуска приложения.

.jar - это всего лишь почтовый файл. Пользователи могут распаковать его или прочитать его содержимое, используя встроенные функции Windows, Linux, Mac OS. Таким образом, хотя можно записывать данные в .jar, он очень доступен для пользователей и даже может быть легко интерпретирован.

+0

Спасибо за ответ, я думал об использовании обертки, такой как JWrapper, поэтому не так легко получить доступ к .jar. – javajoejuan

+0

Это действительно тяжелая вещь, я не хочу предлагать, как это сделать. Может быть, лучше, если вы описываете проблему, а не решение. Если вы просто хотите сохранить некоторые скрытые или зашифрованные данные, вам не нужно писать в исполняемый файл, чтобы сделать это. По крайней мере в Windows я полагаю, что ОС заблокирует исполняемый файл, чтобы предотвратить запись до тех пор, пока вы не закончите работу. Похоже, что это произойдет со вторым исполняемым файлом и множеством хлопот, но я бы не хотел владеть этим кодом. – joshp

+0

После некоторых мыслей шифрование - это то, что я хочу, спасибо! – javajoejuan

Смежные вопросы