@chenmeng1365/ccc
v0.3.0
Published
Unicode homoglyph steganography + full-stack data desensitization (FPE, tokenization, Paillier homomorphic encryption, differential privacy, k-anonymity) for Ruby and JavaScript
Maintainers
Readme
CCC
Coding Ciphering and Crypto — 多主题密码学工具库(Ruby + JavaScript)。
主题
| 主题 | 目录 | 说明 | Ruby | JavaScript |
|------|------|------|------|------------|
| stego | stego/ | Unicode 同形字符隐写:Claude Code 风格日期/撇号隐蔽通道、通用 5 通道隐写 | lib/ccc/stego_encoder.rb, lib/ccc/unicode_stego.rb | src/ |
| desensitize | desensitize/ | 全方位数据脱敏:FPE、令牌化、Paillier 同态加密、日期偏移、差分隐私、假名化、零知识承诺、k-匿名泛化 | lib/ccc/desensitizer.rb | src/desensitizer.js |
快速开始(desensitize 主题)
Ruby:
require "ccc/desensitizer"
engine = Desensitizer::Engine.new(secret_key: "your-master-key")
engine.field :phone, :fpe
engine.field :salary, :paillier
engine.field :name, :pseudonymize
safe = engine.desensitize(raw_record) # 脱敏后安全送 AI
back = engine.restore(safe) # AI 返回后还原JavaScript(Node.js ≥ 14,大数运算使用原生 BigInt,与 Ruby 版跨语言一致):
const { Desensitizer } = require("ccc"); // 或 require("ccc/src/desensitizer")
const engine = new Desensitizer.Engine({ secretKey: "your-master-key" });
engine.field("phone", "fpe");
engine.field("salary", "paillier"); // 密文为 BigInt
engine.field("name", "pseudonymize");
const safe = engine.desensitize(rawRecord); // 脱敏后安全送 AI
const back = engine.restore(safe); // AI 返回后还原开发
bundle exec rake spec # 运行全部 Ruby 测试
bundle exec rake demo # 运行全部 Ruby 演示
npm test # 运行全部 JS 测试(node --test spec/js/*.test.js)
npm run build # rollup 构建 dist/(ESM / CJS / UMD)各主题的设计文档见对应主题目录(如 desensitize/desensitizer/design.md)。
