#redact #sensitive #privacy #macro-derive #redaction #masking #derive-debug

veil

Rust derive 宏,用于在 std::fmt::Debug 中红化敏感数据

7 个版本

0.1.7 2023 年 11 月 20 日
0.1.6 2023 年 5 月 4 日
0.1.5 2022 年 12 月 22 日
0.1.4 2022 年 11 月 16 日
0.1.0 2022 年 9 月 14 日

#79调试

Download history 5195/week @ 2024-04-07 4883/week @ 2024-04-14 4533/week @ 2024-04-21 5355/week @ 2024-04-28 3913/week @ 2024-05-05 4627/week @ 2024-05-12 6422/week @ 2024-05-19 5323/week @ 2024-05-26 4959/week @ 2024-06-02 6136/week @ 2024-06-09 5081/week @ 2024-06-16 4594/week @ 2024-06-23 3578/week @ 2024-06-30 6162/week @ 2024-07-07 5596/week @ 2024-07-14 5195/week @ 2024-07-21

20,729 每月下载量
tumblr_api 中使用

MIT/Apache

40KB
491

crates.io Documentation License CI status

这是一个 derive 宏,它为具有某些字段的结构体或枚举变体实现了 std::fmt::Debug

此宏的目的是允许在结构体和枚举变体中轻松、可配置且高效地红化敏感数据。这可以用于在日志或任何个人数据不应暴露或存储的地方隐藏敏感数据。

使用方法

添加到您的 Cargo.toml 中

[dependencies]
veil = "0.1.7"

使用文档可以在 这里 找到。

示例

示例的详细说明可以在 这里 找到。

#[derive(Redact)]
struct CreditCard {
    #[redact(partial)]
    number: String,

    #[redact]
    expiry: String,

    #[redact(fixed = 3)]
    cvv: String,

    #[redact(partial)]
    cardholder_name: String,
}

#[derive(Redact)]
#[redact(all, variant)]
enum CreditCardIssuer {
    MasterCard,
    Visa,
    AmericanExpress,
}

#[derive(Redact)]
#[redact(all, partial)]
struct Vehicle {
    license_plate: String,
    make: String,
    model: String,
    color: String,
}

#[derive(Debug)]
struct Policy {
    id: Uuid,
    name: String,
    description: String,
}

#[derive(Redact)]
enum InsuranceStatus {
    #[redact(all, partial)]
    Insured {
        #[redact(fixed = 12)]
        policy: Policy,

        policy_started: String,
        policy_expires: String,

        #[redact(skip)]
        payment_card: CreditCard,

        #[redact(skip)]
        vehicles: Vec<Vehicle>,
    },

    Uninsured {
        policies_available: Vec<Policy>,
    },
}

环境感知

在测试环境中,可能需要完全禁用红化。您可以通过启用 非默认 功能标志 toggle

  • 设置环境变量 VEIL_DISABLE_REDACTION 为 "1"、"true" 或 "on"(不区分大小写)来全局禁用 Veil 的红化行为。

或者

这些仅用于安全目的检查一次。

依赖项

~310–790KB
~18K SLoC