Créer un fichier protégé par un mot de passe en java
Je voudrais créer un fichier protégé par un mot de passe en JAVA.
Ce que je veux dire c'est, une fois que je lance le programme, un fichier créé par mon programme serait directement protégé par déterminés précédemment mot de passe.
Est-il un moyen facile de le faire ?
Encore une fois, mon but n'est pas de créer un fichier, puis ajouter un mot de passe, mais lors de la création de protéger le fichier par un mot de passe.
En fait, je veux de l'actuel coureur programme n'ayant pas accès à la lecture/l'édition du fichier créé, SAUF si il/elle a le mot de passe défini précédemment.
De toute façon, si certains d'entre vous connaissez un moyen facile de protéger les fichiers lors de l'écriture grâce à java, je vous en serais très reconnaissant.
Have a nice day!
Veuillez fournir votre code de travail exemples.
mazaneicha : je veux dire la fixation d'un mot de passe pour ces fichiers créés
Edward : j'ai essayé ce code : deba.sys-con.com/node/1258827/mobile . Mais cela ne répond pas à ma question quand même :/
Check this out, peut-être que ça vous aidera: cs.saddleback.edu/rwatkins/CS4B/Crypto/FileEncryptor.html. Bonne chance!
OriginalL'auteur duckduck | 2012-08-11
Vous devez vous connecter pour publier un commentaire.
Vous souhaitez crypter votre fichier (s'contenu) avec un mot de passe. Ici est assez bien connu de la bibliothèque: http://www.jasypt.org/
À partir de leur site:
Vous pouvez lire/écrire le contenu chiffré pour votre fichier.
Si l'utilisateur a accès au système de fichiers, ils seront en mesure d'ouvrir le fichier. Cependant, parce que le contenu est crypté, ils ne voient apparemment aléatoire de données (brouillés, bizarre texte). Empêcher les utilisateurs d'ouvrir le fichier en premier lieu exigera la collaboration de l'OS, donc, ça va être plus difficile, mais comme vous le voyez, vous n'avez pas besoin de le faire afin de protéger le contenu du fichier. Deuxièmement, oui, il va travailler pour tout type de données (recherche par le biais de la lib de docs des moyens pour chiffrer arbitraire d'octets)
OriginalL'auteur Enno Shioji
Lorsque vous voulez crypter des fichiers, des chaînes, etc il y a 2 approches principales.
Vous devriez commencer par la construction d'une classe ou d'une méthode pour convertir ur chaîne/fichier dans un tableau d'octets. Construire une autre méthode pour convertir le tableau d'octets retour à la chaîne/fichier.
Vous pouvez crypter un fichier à l'aide de 2 approches:
1 - clé Symétrique - Un mot secret (généralement une énorme chaîne de caractères ou un mot de passe défini par l'utilisateur) permet de chiffrer vos fichiers et votre mot de passe, et le même mot de passe sera utilisé pour déchiffrer.
2 - clé Asymétrique - Vous générer une paire de clés. L'un est appelé la clé publique et l'autre est appelé une clé privée. Les clés publiques sont utilisées pour crypter des fichiers, clé privée pour déchiffrer.
Ce serait la plus 'professionnel' approche.
Si vous voulez vraiment une approche en toute sécurité, vous devez télécharger GnuPG. GnuPG est un fichier exécutable qui gère assymmetric de cryptage, vous pouvez créer une classe pour travailler avec GnuPG et laissez GnuPG gérer ur processus de cryptage/décryptage.
Theres une mauvaise approche qui est natif de java (clé symétrique) qui peuvent travailler pour vous:
De chiffrement:
Décryptage:
Espère que cette aide.
OriginalL'auteur Pedro Ruschel
Si le fichier est un fichier texte, puis de ne pas donner à l'utilisateur l'accès à un fichier sans mot de passe dans votre programme n'a pas vraiment de mot de passe-protéger les données, car l'utilisateur peut ouvrir le fichier avec un autre programme. Ainsi, SI le fichier est un fichier texte, puis je pense que vous devez utiliser le chiffrement.
Vous pouvez utiliser le commentaire de @mazaneicha pour vous aider à obtenir commencé dans cette direction. Si vous voulez plonger plus en elle, vous pouvez regarder le Java Cryptography architectre et la javax.crypto java docs.
Si votre fichier n'est pas lisible par l'homme, et que votre programme comprend, puis je ferais la première ligne ou n premiers Octets du fichier d'un mot de passe. Si vous préférez, vous pouvez enregistrer un autre fichier de mot de passe dans le même répertoire et de l'utiliser pour authentifier l'utilisateur avant de décider si l'utilisateur a le droit de consulter le fichier. Une façon courante pour crypter un mot de passe est une fonction de hashage MD5. L'utilisateur entre un mot de passe, permet de calculer la valeur de hachage, puis de comparer le hash calculé avec la valeur de hachage de lire à partir du fichier:
La méthode que j'ai écrit ci-dessus est pour une fonction de hachage. Il peut crypter un mot de passe, mais il n'y a pas de méthode de déchiffrement. Si tout ce que vous devez faire est de stocker un mot de passe, puis l'utiliser. Si vous voulez crypter des fichiers (texte, images, ou ce que vous voulez) ensuite, vous pouvez utiliser le javax.crypto paquet pour que. @Pedro a écrit du code de la démonstration d'un simple utilisation de ce package. A noter que son code est le cryptage d'un tableau d'octets, de sorte qu'il va travailler pour tout type de fichier.
OriginalL'auteur Thorn