Vous êtes-vous déjà demandé s'il existe un bon service de stockage? Mais n'est-ce pas? Juste là.
:thinking:
GitHub a une limite de 100 Mo par fichier, vous ne pourrez donc peut-être pas le faire tel quel. Sans surprise, j'ai essayé de sauvegarder un gros fichier.
Je ne veux pas connaître le nom du fichier et je gère également le nom du fichier sous forme de fichier texte.
Ensuite, vous devez le crypter après l'avoir fractionné! En outre, générer automatiquement une table de correspondance pour les changements de nom de fichier!
C'est pourquoi j'ai créé ceci
Je n'ai écrit aucun type de documentation, mais je pense que ce n'est pas difficile à utiliser. Mettons-le dans JitPack.
Créons un dépôt git
cd locked/
git init
git remote add origin https://github.com/nao20010128nao/somewhere-secret.git
J'écris tout à Kotlin. Veuillez importer dans com.nao20010128nao.Cryptorage. *
//Ouvrir du local
val fs = File("secure/").asFileSource()
//Ouvrir à partir du référentiel GitHub
val fs = URL("https://github.com/nao20010128nao/somewhere-secret/raw/inexistent/").asFileSource()
//Augmenter la mémoire
val fs = newMemoryFileSource()
Vous pouvez maintenant obtenir un système de fichiers spécifique à Cryptorage appelé FileSource
.
AES-128 est utilisé pour le cryptage. La clé de chiffrement est définitivement dérivée du mot de passe.
//Stockage cryptographique simple(V1)
val cryptorageV1 = fs.withV1Encryption("mot de passe")
//Stockage qui a rendu difficile l'identification même de l'emplacement de la table de correspondance(V2)
val cryptorageV2 = fs.withV2Encryption("mot de passe")
Par souci de simplicité, l'exemple du seul mot de passe est montré, mais uniquement pour V1, Pair <ByteArray, ByteArray>
peut être spécifié comme clé AES.
L'API de Cryptorage utilise ByteSink / ByteSource de Guava.
//Utiliser l'API ByteSink
cryptorage.put("filename").write("This is a secret string!!!".toByteArray())
//Gérer avec le flux de sortie
val os = cryptorage.put("filename").openStream()
//Opération d'écriture
os.close()
//Depuis le début
val is = cryptorage.open("filename").openStream()
//Du milieu(Puisqu'il est divisé, le coût est faible même à partir du milieu)
val is = cryptorage.open("filename", offset).openStream()
//Puisqu'il s'agit d'InputStream, il semble facile à manipuler comme vous le souhaitez
cryptorage.list()// Array<String>
cryptorage.delete("filename")
cryptorage.commit()
Puisque Cryptorage est «Closer», vous pouvez utiliser les utilitaires Closer.
cryptorage.close()
git add .
git commit -mChanged
git push
Vous pouvez diviser le fichier comme ceci, le chiffrer et le stocker sur GitHub. Au fait, il semble y avoir une limite à la taille de GitHub par branche, alors faites attention à ne pas la dépasser en coupant la branche de manière appropriée.