男女做爽爽爽网站-男女做羞羞高清-男女做爰高清无遮挡免费视频-男女做爰猛烈-男女做爰猛烈吃奶啪啪喷水网站-内射白浆一区

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

封裝一個(gè)方法,使用 C# 正則表達(dá)式巧妙隱藏 JSON 字符串中的敏感信息,守護(hù)密碼安全

admin
2024年12月30日 12:21 本文熱度 1376

前言

嗨,大家好!

想象一下,你正在開發(fā)一款應(yīng)用程序,突然遇到了這樣一個(gè)棘手的問(wèn)題:

你需要將對(duì)象序列化為 JSON 字符串并打印到日志中進(jìn)行調(diào)試,但這其中包含了敏感的密碼信息。

如果直接將這些密碼暴露在日志里,不僅違反了安全最佳實(shí)踐,還可能引發(fā)嚴(yán)重的隱私泄露風(fēng)險(xiǎn)。

這時(shí)候,你可能會(huì)想到幾種解決方案:

  • 忽略序列化:將密碼字段標(biāo)記為 [JsonIgnore] 或類似的屬性,但這可能會(huì)影響到其他業(yè)務(wù)邏輯,特別是當(dāng)實(shí)體類位于較低層次時(shí)。

  • 手動(dòng)打印字段:逐一打印對(duì)象的字段內(nèi)容,但這顯然非常麻煩,尤其是當(dāng)實(shí)體類包含大量字段時(shí),或者實(shí)體類有變動(dòng)時(shí)。

那么,有沒(méi)有一種更優(yōu)雅、影響最小的方式來(lái)解決這個(gè)問(wèn)題呢?

答案是肯定的!

今天,我們可以利用 C# 的正則表達(dá)式,封裝編寫一個(gè)簡(jiǎn)潔而強(qiáng)大的方法,自動(dòng)隱藏 JSON 字符串中的密碼字段。

這種方式不僅實(shí)現(xiàn)起來(lái)簡(jiǎn)單,而且對(duì)現(xiàn)有代碼的影響極小,非常適合在實(shí)際項(xiàng)目中應(yīng)用。

讓我們一起動(dòng)手試試吧!

封裝方法

下面是我封裝的方法,通過(guò)正則表達(dá)式,它能夠智能地識(shí)別并隱藏 JSON 字符串中的密碼字段,留意代碼中的注釋

/// <summary>
/// 隱藏Json字符串中的密碼
/// </summary>
/// <param name="jsonData">需要處理的 JSON 字符串</param>
/// <returns>處理后的 JSON 字符串,其中密碼字段已被隱藏</returns>
public static string HidePassword(string jsonData)
{
    string newJsonData = null;

    // 定義替換模式,使用命名捕獲組 "str" 來(lái)匹配鍵名
    string replacement = "\"${str}\":\"********\"";

    // 匹配包含 "password" 的鍵名(不區(qū)分大小寫)
    // 替換為星號(hào)掩碼
    string pattern1 = "\"(?<str>([A-Za-z0-9_]*)password)\":\"(.*?)\""

    // 使用正則表達(dá)式替換所有匹配項(xiàng)
    newJsonData = Regex.Replace(jsonData, pattern1, replacement, RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.Singleline);

    // 如果有多個(gè)不同的密碼字段(如 pwd),可以繼續(xù)增加隱藏語(yǔ)句
    // 或者將它單獨(dú)抽出來(lái)作為一個(gè)子方法
    // string pattern2 = "\"(?<str>([A-Za-z0-9_]*)pwd)\":\"(.*?)\"";
    // newJsonData = Regex.Replace(newJsonData, pattern2, replacement, RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.Singleline);

    // 返回處理后的 JSON 字符串
    return newJsonData;
}

使用示例

接下來(lái),我們來(lái)看看如何在實(shí)際代碼中調(diào)用這個(gè)方法。

假設(shè)你有一個(gè)包含用戶名和密碼的 JSON 字符串,只需幾行代碼就可以將其密碼字段安全地隱藏起來(lái)。

class Program
{
    static void Main()
    {
        // 假設(shè)這是從某個(gè)地方獲取的 JSON 字符串
        string jsonData = "{\"username\":\"Jacky\", \"password\":\"123456\",\"Age\":35}";

        // 調(diào)用 HidePassword 方法隱藏密碼字段
        string sanitizedJson = SecurityUtil.HidePassword(jsonData);

        // 輸出處理后的 JSON 字符串
        Console.WriteLine(sanitizedJson);
    }
}

測(cè)試

按 Ctrl+F5 編譯并運(yùn)行程序,你會(huì)在控制臺(tái)看到如下圖輸出:

這說(shuō)明我們已經(jīng)將原始密碼 123456 替換成了 ********,從而有效地保護(hù)了敏感信息

總結(jié)

這是老楊最近碰到的一個(gè)有趣的業(yè)務(wù)需求而封裝的方法。

通過(guò)使用 C# 正則表達(dá)式,我們輕松實(shí)現(xiàn)了隱藏 JSON 字符串中密碼字段的功能,既解決了安全隱患問(wèn)題,又不影響原有的代碼,同時(shí)還保持了代碼的簡(jiǎn)潔性和可維護(hù)性。

這個(gè)方法不僅可以用于日志記錄,還可以應(yīng)用于任何需要保護(hù)敏感信息的場(chǎng)景。

你可以將它直接應(yīng)用到你的項(xiàng)目中,通過(guò)這個(gè)封裝的方法,當(dāng)你遇到相似的業(yè)務(wù)需求時(shí),再也不需要浪費(fèi)時(shí)間尋找合適的方法了,相信它可以幫助你大大提高工作效率!


該文章在 2024/12/30 12:28:24 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产麻豆精品乱码一区 | 亚洲精品中文字幕无乱码麻豆 | 国产成人18黄网站免费网站 | 乱码精品一卡二卡无卡 | 国产一区二区在线免费观看 | 久久九九久精品国产综合 | 日本久久精品毛片一区随边看 | 中文字幕按摩做爰 | 人妻无码精品久久亚瑟影视 | 无码中文字幕日韩专区 | 一本色道久久综合国产 | 欧美97色 | 二区三区蜜桃 | 一本加勒比少妇人 | 中文字幕无码永久 | 国产福利免费看 | 欧美成人精品视频在线播放 | 2024国产精品香蕉在线观看 | 国产精品乱码久久久久久软件 | 午夜一级在线 | 国内精品人妻无码久久久影院蜜桃 | 亚洲欧美中文v日韩v在线 | 欧洲永久精品大片ww网站 | 亚洲日韩国产另类精品乱码 | 91免费福利精品国产 | 亚洲欧美中文v日韩v在线 | 成人v专区精品无码国产 | 精品国产一区二区三区不卡蜜臂 | 日韩精美视频 | 久久精品网站免费观看 | 成人18免费网站 | 欧美一级夜夜爽 | 少妇人妻系列无码专区视频 | 老女老肥熟国产在线视频 | 久久久久亚洲av无码专区首jn | h片国产在线观看播放免费 h入口成人精品人伦一区二区三区蜜 | 韩国日本三级三级人 | 91在线精品老司机免费播放 | 精品人妻伦一二三区久久春菊 | 亚洲不卡一区二区三区 | 亚洲成人网站在线观看播放 |