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月28日

#1662 in 过程宏

Download history 5615/week @ 2024-03-14 4622/week @ 2024-03-21 4716/week @ 2024-03-28 3803/week @ 2024-04-04 5709/week @ 2024-04-11 4534/week @ 2024-04-18 5572/week @ 2024-04-25 4416/week @ 2024-05-02 4240/week @ 2024-05-09 5940/week @ 2024-05-16 5842/week @ 2024-05-23 4210/week @ 2024-05-30 6308/week @ 2024-06-06 5119/week @ 2024-06-13 4831/week @ 2024-06-20 3370/week @ 2024-06-27

每月20,509次下载
2 个crate中使用 (通过 veil)

MIT/Apache

40KB
773

crates.io Documentation License CI status

一个派生宏,用于为具有某些字段被红化的结构体或枚举变体实现 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的红化行为。

或者

出于安全考虑,这些仅在第一次检查。

依赖关系

~295–750KB
~18K SLoC