უფასო კონფიდენციალურობის ხელსაწყო

დაშიფრეთ ფაილი თქვენს ბრაუზერში.

აირჩიეთ ფაილი და საპაროლო ფრაზა, შემდეგ ჩამოტვირთეთ დაშიფრული ასლი. გამოიყენება AES-256-GCM, ხოლო გასაღები თქვენს ბრაუზერში წარმოიქმნება. არაფერი იტვირთება და გვერდის ერთხელ ჩატვირთვის შემდეგ ხელსაწყო ოფლაინაც მუშაობს. ფორმატი ქვემოთ ბაიტობრივადაა აღწერილი, ამიტომ მხოლოდ ჩვენს სიტყვაზე დაყრდნობა არ გჭირდებათ.

მთლიანად ამ ჩანართში მუშაობს. არაფერი იტვირთება და გვერდის ერთხელ ჩატვირთვის შემდეგ ოფლაინაც მუშაობს.

აირჩიეთ ფაილი.

ნებისმიერი ფაილი. დიდი ფაილები მეხსიერებას საჭიროებს. ქვემოთ იხილეთ შეზღუდვების გულწრფელი აღწერა.

აღდგენა შეუძლებელია. დავიწყებული საპაროლო ფრაზა ნიშნავს, რომ ფაილს ვეღარავინ გახსნის — ვერც ჩვენ.

ყველა პარამეტრი, სრულად

შიფრი
AES-256-GCM (WebCrypto), 128-ბიტიანი ტეგი
გასაღების წარმოქმნა
PBKDF2-HMAC-SHA-256, 600,000 იტერაცია
KDF-ის მარილი
16 ბაიტი, CSPRNG, თითოეული ფაილისთვის ახალი
GCM nonce
12 ბაიტი, CSPRNG, თითოეული ფაილისთვის ახალი
ავთენტიფიცირებული მონაცემები.
მთელი 42-ბაიტიანი სათაური; ამიტომ ნებისმიერი მითითებული პარამეტრის შეცვლა გაშიფვრას არღვევს
საპაროლო ფრაზის კოდირება
UTF-8, NFC-ნორმალიზებული (რათა ნებისმიერ მოწყობილობაზე აკრეფილმა ერთსა და იმავე ფრაზამ იგივე გასაღები წარმოქმნას)

გულწრფელი შეზღუდვები

ეს Sealby აპის სეიფის ფორმატი არ არის. აპი გასაღებებს თითოეული მოწყობილობისთვის მორგებული Argon2id-ით წარმოქმნის, მათ Secure Enclave-ში ახვევს და შიგთავსს დამაჯერებლად უარყოფად, ნაწილებად დაყოფილ კონტეინერებში ინახავს. ვებგვერდი ამას ვერ შეძლებს. ეს გვერდი დამოუკიდებელი ხელსაწყოა, რომელიც ბრაუზერების ჩაშენებულ შესაძლებლობებს იყენებს.

PBKDF2 მეხსიერებაზე ინტენსიური არ არის. ეს გასაღების წარმოქმნის ერთადერთი ფუნქციაა, რომელსაც ბრაუზერები ჩაშენებულად გვთავაზობს. 600,000 იტერაცია თითოეულ ცდას ანელებს, თუმცა GPU დანადგარი მას მაინც ბევრად სწრაფად უტევს, ვიდრე Argon2id-ს. ამიტომ დაცვას თქვენი საპაროლო ფრაზა უზრუნველყოფს: სულ მცირე ოთხი შემთხვევითი სიტყვა და არა პაროლი.

WebCrypto დაშიფვრას ერთჯერადად ასრულებს და ნაკადურ დამუშავებას არ იყენებს, ამიტომ პროცესის დროს მთელი ფაილი მეხსიერებაში ორჯერ ან სამჯერ თავსდება. მოწყობილობების უმეტესობა ასობით მეგაბაიტს გაუმკლავდება; მრავალგიგაბაიტიანი არქივებისთვის დესკტოპის ხელსაწყო გამოიყენეთ. დაშიფრული შედეგი ფაილის მიახლოებით ზომასაც ავლენს. სახელი შიგნით დაშიფრულია, ზომა კი დაფარული არ არის.

ფორმატი, ბაიტი-ბაიტად

ყველაფერი, რაც ტექნიკურ მკითხველს ამ გვერდის შედეგის დამოუკიდებლად შესამოწმებლად ან Python-ის ოც სტრიქონში გასაშიფრად სჭირდება:

bytesfieldcontents
0–7სიგნატურაASCII "SBXF0001"
8ვერსია.0x01
9ალგორითმი.0x01 = AES-256-GCM + PBKDF2-HMAC-SHA-256
10–13იტერაციებიuint32, big-endian (600,000)
14–29salt16 ბაიტი
30–41nonce12 ბაიტი
42–ბოლომდედაშიფრული ტექსტიpayload-ის AES-256-GCM დაშიფრული ტექსტი, AAD = 0–41 ბაიტები; ბოლო 16 ბაიტი GCM ტეგია

დაშიფვრამდე payload: [2-ბაიტიანი სახელის სიგრძე, big-endian][ფაილის სახელი, UTF-8][ფაილის ბაიტები]. თავდაპირველი სახელი დაშიფრული სახით ინახება და გაშიფვრისას აღდგება.

საცნობარო გამშიფრავი (Python, cryptography-ის ბიბლიოთეკა)
import sys, hashlib, struct, unicodedata
from cryptography.hazmat.primitives.ciphers.aead import AESGCM

raw = open(sys.argv[1], "rb").read()
assert raw[:8] == b"SBXF0001" and raw[8] == 1 and raw[9] == 1
iters = struct.unpack(">I", raw[10:14])[0]          # 600000
salt, nonce, ct = raw[14:30], raw[30:42], raw[42:]
phrase = unicodedata.normalize("NFC", sys.argv[2]).encode()
key = hashlib.pbkdf2_hmac("sha256", phrase, salt, iters, 32)
plain = AESGCM(key).decrypt(nonce, ct, raw[:42])     # AAD = header
name_len = struct.unpack(">H", plain[:2])[0]
name = plain[2 : 2 + name_len].decode()
open(name, "wb").write(plain[2 + name_len :])
print("decrypted ->", name)

ეს დემოა. პროდუქტი სეიფია.

ერთი ფაილი, ერთი საპაროლო ფრაზა, ერთი გვერდი — ბრაუზერს მხოლოდ ეს შეუძლია. Sealby ამას სრულფასოვნად აკეთებს: თქვენს მოწყობილობაზე მორგებული Argon2id, გასაღებები Secure Enclave-ში და დამალული სეიფები, რომელთა არც სია და არც რაოდენობა არსად ინახება.

ჩამოტვირთეთ App Store-დან

iPhone და iPad · iOS 17+ · უფასო