فرهاد خانلری
کارشناس ارشد شبکه مایکروسافت

آموزش رمزنگاری Connection String در web.config به زبان ساده

Connection String را چگونه با web.config امن کنیم ؟ در این مطلب نحوه رمزنگاری EnCrypt و DeCrypt کردن رشته اتصال به بانک اطلاعاتی ConnectionString های موجود در Web.Config را خواهیم گفت ، برای شروع یک رشته اتصال Connection Stringدر Web.Config قرا میدهیم مطابق کد زیر

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
<connectionStrings>
    <add name="con" connectionString="Data Source=.;Initial Catalog=master;Persist Security Info=True;User ID=sa;Password=123"
        providerName="System.Data.SqlClient" />
</connectionStrings>

سپس دگمه یا Button در صفحه فرم ایجاد میکنیم و خاصیت Text را EnCrypt قرا میدیم و کد های زیر را درون آن قرار میدهیم.

Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
ConfigurationSection appSettings = config.GetSection("connectionStrings");
appSettings.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");
config.Save();

بعد از اجرا شدن کدها رشته های اتصال موجود در Web Config رمز نگاری خواهند شد

<connectionStrings configProtectionProvider="DataProtectionConfigurationProvider">
    <EncryptedData>
        <CipherData>
            <CipherValue>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAuHWB/xqx3EuXCSI4lLGE8AQAAAACAAAAAAAQZgAAAAEAACAAAADNcp3rRrXdG8fKjddD1Haug6Mc96avJuPnosZ0iYEurwAAAAAOgAAAAAIAACAAAADP86XwZeu0cKzQXXKe1Kk/deE0zoZXLAbbZGN++F07vLABAAAYu4g3oQCT7Y/uPTVYLfHYTzLL+MD/Z5/7Yj6A0LNcu5A30SYHUqEQPqTqdTx2XdWrZQr7GS1lUwhuCeRgc94P/vooJrShZ5rcxhab8ihLb0F+T0/mbQKaQFUCnvLkSHY3rvBn3AwW9use6QOJp3EFjZEcJA/mIEuW5AMVnMTGBpk+j3nmknECFrj7+Rj6UK4EFrdtafjZAcXdAIh6AgrHhA3tZhPIoWsNVz29a4STXlhYW2cdD8Ct5HncvHXn7OwvgUBD7HUw3hm6e3Sw+jQd16Snx4FBRVZ3o8PnJ/YZDECP5XAgHIYZ6UCNuG7EUq5uWHTrolAt6jqeiR0gRYddl96+q9dFD1M6oAdJHMznRmKNY3hZt6m1d6RjG/08GQZk6lXkVrCvaSFYMqsjvqTjKqyDaeyUtB76NNHRiF8NP07Sgn0MqhElFrTxoBHVGPgQNnNk1prJ3yaORD4qglXAuHQMG2C7HuIoExaokZpBDbKBasLIFY+MOOLAruXPgOx1Jk/TbsXl01teF7pENsAB/s9AUTYM6QOCmgbAiolGlxUCoDUatE15KSjQuufR6vhAAAAAepX+tguXiv0oa6U4vIi3LpCFADCBYsHcDZaUPIyxlUxETPyJWdnpP+qN0c4SOAYHDfWb4+REOsyxEHZy3vjKtA==</CipherValue>
        </CipherData>
    </EncryptedData>
</connectionStrings>

سپس یک دگمه دیگر به نام Decrypt در فرم ایجاد کرده و کد های زیر را داخل رویداد آن مینویسیم

Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
 
     ConfigurationSection appSettings = config.GetSection("connectionStrings");
 
     appSettings.SectionInformation.UnprotectSection();
     config.Save();

که در این حالت پس از اجرا شدن کدها رشته اتصال از رمزنگاری خارج خواهد شد و Decrypt خواهند گردید.

<connectionStrings>
    <add name="con" connectionString="Data Source=.;Initial Catalog=master;Persist Security Info=True;User ID=sa;Password=123"
        providerName="System.Data.SqlClient" />
</connectionStrings>
  • نکته:جهت استفاده از رشته اتصال در برنامه نیازی به DeCrypt کردن آن نیست.

فرهاد خانلری
فرهاد خانلری

کارشناس ارشد شبکه مایکروسافت

فرهاد خانلری ، مدرس شبکه و برنامه نویسی مبتنی بر زیرساخت های مایکروسافت ، سابقه فعالیت در موسسات و مراکز دولتی در قالب پروژه ، مشاوره و تدریس ، برنامه نویسی ++C ، سی شارپ و دات نت ، متخصص و مدرس شبکه های مبتنی بر سیستم عاملهای مایکروسافت و سرویس های مربوطه ، سخت افزار و ...

نظرات