Sekuvo
Türkçe

Zarf → QR

Bu sayfa, zaten şifrelenmiş bir Sekuvo zarfını telefonun okuyabileceği QR karelerine çevirir. Şifreleme yapmaz ve asla bir sır istemez: zarfı kendi makinende üretirsin, buraya yalnız şifreli metin yapıştırılır.

En temkinli yol hâlâ indirilen ve kendi diskinden açılan aktar.html'dir. Bu sayfa, şifrelemeyi kendi terminalinde yapıp yalnız QR gösterimine ihtiyaç duyduğun durum için var.

1 · Zarfı kendi makinende üret

Aşağıdaki betik, uygulamanın açtığı zarfın birebir aynısını kurar (PBKDF2-HMAC-SHA256 · 310.000 tur + AES-256-GCM). zarf-uret.py adıyla kaydet ve çalıştırmadan önce oku — otuz satır kadar. Parolayı uydurma, üret; ilk komut bunun için.

# macOS / Linux
# generate a password (letters+digits, ~119 bits):
python3 -c "import secrets,string; print(''.join(secrets.choice(string.ascii_letters+string.digits) for _ in range(20)))"

pip3 install cryptography
python3 zarf-uret.py "Server SSH" > zarf.json   # paste the secret, then Ctrl-D
pbcopy < zarf.json                              # macOS; Linux: xclip -sel clip < zarf.json
# Windows (PowerShell)
# generate a password (letters+digits, ~119 bits):
python -c "import secrets,string; print(''.join(secrets.choice(string.ascii_letters+string.digits) for _ in range(20)))"

pip install cryptography
python zarf-uret.py "Server SSH" > zarf.json    # paste the secret, then Ctrl-Z + Enter
Get-Content zarf.json | Set-Clipboard
#!/usr/bin/env python3
# zarf-uret.py - reads the secret from stdin, writes a Sekuvo envelope to stdout.
# Usage: python3 zarf-uret.py "Title" > zarf.json   (paste the secret, then Ctrl-D)
# Requires: pip install cryptography
import sys, os, json, time, base64, hashlib, getpass
from cryptography.hazmat.primitives.ciphers.aead import AESGCM

title = sys.argv[1] if len(sys.argv) > 1 else "Transfer"
secret = sys.stdin.read()
# The app refuses entries above 256 KB; say so here instead of after the scan.
assert len(secret.encode()) <= 256 * 1024, "secret is over 256 KB, the app will not import it"
password = getpass.getpass("Envelope password (ASCII, generated): ")
assert password.isascii() and len(password) >= 8, "ASCII and at least 8 characters"

now = int(time.time() * 1000)
payload = json.dumps({"entries": [{
    "type": "NOTE", "title": title,
    "createdAt": now, "updatedAt": now, "quick": False,
    "data": {"notes": secret},
}]}, ensure_ascii=False)

salt = os.urandom(16)
key = hashlib.pbkdf2_hmac("sha256", password.encode(), salt, 310_000, 32)
iv = os.urandom(12)
blob = iv + AESGCM(key).encrypt(iv, payload.encode(), None)
print(json.dumps({
    "app": "vault", "version": 1,
    "kdf": {"algo": "PBKDF2WithHmacSHA256", "iterations": 310_000,
            "salt": base64.b64encode(salt).decode()},
    "cipher": "AES-256-GCM",
    "data": base64.b64encode(blob).decode(),
}))

Sırrı komut satırına yazma, betiğin girdisine yapıştır — böylece kabuk geçmişine düşmez.

2 · Zarfı yapıştır

3 · Telefonda

Sekuvo → + → QR ile aktar → kareleri okut → aynı parolayı gir → Mevcuta ekle.

← sekuvo.com'a dön