এই পৃষ্ঠা আগে থেকে এনক্রিপ্ট করা একটি Sekuvo এনভেলপকে এমন QR ফ্রেমে রূপান্তর করে যা আপনার ফোন স্ক্যান করতে পারে। এটি কোনো এনক্রিপশন করে না এবং কখনো গোপন তথ্য চায় না: এনভেলপটি আপনি নিজের মেশিনে তৈরি করেন, এখানে কেবল এনক্রিপ্টেড টেক্সটই পেস্ট হয়।
সবচেয়ে সাবধানী পথ এখনো ডাউনলোড করা aktar.html, যা নিজের ডিস্ক থেকে খোলা হয়। এই পৃষ্ঠাটি সেই পরিস্থিতির জন্য যখন আপনি নিজের টার্মিনালে এনক্রিপ্ট করেন এবং কেবল QR প্রদর্শন দরকার।
নিচের স্ক্রিপ্টটি ঠিক সেই এনভেলপই বানায় যা অ্যাপ খোলে (PBKDF2-HMAC-SHA256 · ৩,১০,০০০ রাউন্ড + AES-256-GCM)। এটিকে zarf-uret.py নামে সংরক্ষণ করুন এবং চালানোর আগে পড়ুন — প্রায় ত্রিশ লাইন। পাসওয়ার্ড বানিয়ে না নিয়ে জেনারেট করুন; প্রথম কমান্ডটি সেটিই করে।
# 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(),
}))
গোপন তথ্যটি কমান্ড লাইনে টাইপ না করে স্ক্রিপ্টের ইনপুটে পেস্ট করুন — তাহলে সেটি কখনো আপনার শেল ইতিহাসে থাকবে না।
Sekuvo → + → QR দিয়ে ইম্পোর্ট করুন → ফ্রেমগুলো স্ক্যান করুন → একই পাসওয়ার্ড দিন → বিদ্যমানে যোগ করুন।
← sekuvo.com-এ ফিরে যান