Crypstie для Node.js

Пакет создаёт и открывает зашифрованные ссылки Crypstie без браузера и Kotlin. Он совместим со старыми ссылками crypstie.com.

Установка

npm install --global crypstie

Требуется Node.js 18 или новее.

Командная строка

Создать многоразовую ссылку:

printf 'секретный текст' | crypstie create
crypstie create ./document.txt --days 7

Создать ссылку, удаляемую после чтения:

crypstie create ./secret.txt --burn

Прочитать крипстю:

crypstie open 'https://crypstie.com/_id#key'
crypstie open "$CRYPSTIE_URL" --output ./document.bin
crypstie open "$CRYPSTIE_URL" --json

Ссылку следует заключать в кавычки: иначе shell воспримет # как начало комментария. Полная ссылка является секретом — любой получивший её сможет расшифровать содержимое.

Программный API

const { createCrypstie, openCrypstie } = require('crypstie');

const created = await createCrypstie('секрет', {
  deleteAt: new Date(Date.now() + 7 * 86400_000),
  burnOnShow: false,
});

const opened = await openCrypstie(created.url);
console.log(opened.text);

Точные исходные байты находятся в opened.data, а opened.text является их представлением в UTF-8.

Модель безопасности

  • Случайный 256-битный ключ создаётся локально.
  • unicrypto использует AES-256-CTR и Encrypt-then-Authenticate с HMAC/SHA-256.
  • Сервер получает только BOSS-контейнер с зашифрованными данными.
  • Ключ находится после # и не передаётся в HTTP-запросе.
  • Не помещайте полные ссылки в публичные логи, задачи и сообщения.