Skip to content
/ XiangYue Public

想曰 - 文本加密让你想曰就曰,曰你所想。 | Want to say - Text encryption allows you to express what you want to say and convey your thoughts.

License

Notifications You must be signed in to change notification settings

fzxx/XiangYue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

想曰

GitHub stars GitHub forks 已关闭 Issues 许可证 级联算法 多种密文

想曰(yuē) 是基于现代加密技术的文本加密工具,使用多算法级联加密方案,确保数据在本地完成加密/解密,保护隐私安全。

🌟 特点

  • ㊙️密文:支持 中文/Base64/Emoji/零宽/日语/韩语/象形 密文
  • 🔐密钥ECDH-X25519 + ECDH-P521Argon2id + HKDF-SHA512,有效抵御暴力破解
  • 🔒级联算法:采用 AES256-CTRChaCha20-Poly1305-IETF 级联加密,安全性极高
  • 📄数据:所有操作在本地完成,数据不离开设备

📋密文示例

以下密文使用 默认密码 加密

中文密文
雷柜箱慕虎斜灯无羞站愁层梁条人岂解显无靠走峰抬旋吵所扶诉旗晃接勤哈袜方错美过晕盆拧奔随梦疏清跃蝶拍说海鸟房清烟月急压非片抖呱棒千说呱海晨也梯读盘压太甜旗狐向画颗得池厨又沉叉托茶暖峦虚小料叹门跨桂已闹李竖咯棒愿咯迷首馆
Base64 密文
J7ni11NnCUEe1+GtZcIWoJcKNgzsyN8K8BQBKnDn/1mLPkv2ul1VUcedyoIgZpXcNUKfy3HhZI6soaa54UcqLtJs52caSPuVo3EBOYvMqYS2
Emoji 密文
🍿⏫🐜🤕🚛🤧🎲▶️🦕🦢🛴🔣🏨💽⏹️🦴🐫🏓🔌🧂😚🚠🚢📷🪲🪃🚬🦋🤒🍏⏫♎️🦼📀📼😴⚜️👩👾🦇📟🍌🦏🕍⚱️😃🔭🧽🦍🍎🤫🌉🌆🥔🚔🍢😈😐🐌🏓🔋❣️💸🍑
零宽密文(可藏在中文、网址、提取码、英文、Base64等可见字符中)

https://github.com/fzxx/⁣⁡⁤؜⁣‍⁤⁣⁡⁢‍⁤؜⁢⁢⁡⁢⁤⁢⁡‍⁤⁣⁤⁤⁤⁢؜⁤⁡⁠‍⁣‍⁣⁣⁢⁤͏⁤⁢⁣‌⁣⁠⁢⁢⁤⁠⁣⁣⁣‍⁣⁠⁤‍⁡‌⁤͏⁤⁡⁣⁡⁠⁢⁢‍⁢⁠⁤⁡⁣⁤؜⁢⁣‌⁢⁠⁠⁣⁢‍⁣⁡⁤⁤⁠‍⁢⁢⁡⁡⁣⁣⁡͏‌XiangYue

日语密文
ヷㇴょわㇿデぞズゆェピゆベナこマびむしヾノざュゝるスしニユダクぷすゾゔうゼダりち〴ㇹぐぁぇヘぷゼぺにづヂボゔㇲこぱミみぼメェだは
韩语密文
퍼헬팁청쌀빠꽂뭇활현라골띤틀문헬룸로쿠텁완권ㅂ기멎끔해되릎펫닫궉뉴담답폼칼받듀릭맑일친끼죄루디ㄲ집멎블권대안지당톤사혐군즈꼭율한
象形密文
𓅺𓎓𓐌𓃩𓋅𓁳𓈦𓋾𓃵𓋄𓄖𓈽𓃭𓈚𓀄𓌏𓀭𓉎𓁙𓅮𓅯𓋶𓀣𓀬𓌚𓅟𓌧𓀊𓃭𓅭𓅮𓎴𓂌𓈉𓄸𓎜𓎙𓀹𓃦𓂄𓏫𓅍𓃯𓁱𓁀𓈸𓆀𓈁𓏄𓐤𓀢𓄗𓋃𓃭𓌝𓈴𓋚𓆐𓉬𓇹𓐌𓌨𓄗𓋩

🖥️在线与离线使用

在线页面 免尴尬页 Release

备用页① 备用页②

🔄️更新日志

更新日志

🛡️ 安全细节

安全细节

😕 疑问

发送给多人如何管理多个密码?如何安全地传递密码、公钥?

  • 使用可靠的密码管理器,例如:KeePass、KeePassXC、Bitwarden
  • 使用开源的阅后即焚文档传递密码、公钥,例如:PrivateBin、pastebin

少量文字也会生成较长的文本,能缩短吗?

  • 因为追求安全性,所以添加了随机种子、校验标签参数,密文中存储这些参数导致的;去掉参数追求短密文会削弱安全性,目前已做到保障安全性的情况下最短了。

感觉加密/解密慢?支持加密/解密的最大容量?

  • 使用Argon2id算法的正常现象;Base64模式下,短文本理应1秒内加/解密完成,5M的文本(大约200万字)应3秒左右,Edge浏览器卡顿需要关闭增强 Web 安全性(设置 → 隐私、搜索和服务 → 安全性)其它浏览器也可以按设置查看并关闭相应的选项。

  • 不影响速度的情况下,建议5M以下(测试支持50M+);超大的文本请使用压缩包或者其它方式加密。

可以给密文再次加密?或者嵌入?

  • 明文 → emoji密文 → 中文密文 → ...... 可以这样无限套娃加密,但不会增加安全性,安全性取决于你的密码,因此不建议这样做。
  • 中文密文嵌入零宽密文,会优先解密零宽,达成一文双解的效果,但并不能瞒过机器识别。

经过某些软件发送密文后,解密错误?

  • 是因为某些软件喜欢折叠聊天内容,或者发送过长的密文被截断,安卓系统粘贴板有长度限制,建议你检查密文的完整性;Eomij密文可能因为不同设备内置的表情不一导致解密错误,零宽密文有被某些平台过滤字符的可能。

零宽密文只有两个字符?可见字符可以自定义?

  • 密文总长度没有变,只是转为不可见字符藏在两个可见字符中间,是为了让人知道密文在哪,方便复制。
  • 可以,只需手动替换密文中的可见字符(零宽密文只是对人不可见,机器是秒识别的,但识别不代表能解密)。

非对称加密的光、暗密钥对都要生成?光暗密钥对的位置可以互换?

  • 如果没有特别的需求,不用生成暗密钥对。
  • 填入密钥对时,光暗密钥对的位置可以互换,但需要保持加/解密时一致的位置

非对称加密的对方公钥框,填自己的公钥会怎么样?

  • 会导致密文只有自己可以解密,这不是BUG,而是隐藏用法,特别留给有藏日记到暗密文需求的人。

🫧相关项目

文图变 - 文件藏到图片

坏坏包 - 让压缩包像坏了

闪电擦除 - 让文件无法恢复

📖 许可证

想曰 - 私下研究专用许可

libsodium.js - ISC 许可证

pako - MIT 许可证