天天看點

探讨.NET Core中實作AES加密和解密以及.NET Core為我們提供了什麼友善!前言

對于資料加密和解密每次我都是從網上拷貝一份,無需有太多了解,由于在.net core中對加密和解密目前全部是統一了接口,隻是做具體的實作,由于遇到過問題,是以将打算基本了解下其原理,知其然足矣,知其是以然那就達不到了,利用AES加密更加安全,上一篇園友又提出,是以借着這個機會剛好用到加密和解密,同時我也已将項目中DES加密已替換為AES,在這裡介紹一下。

進階加密标準(英語:Advanced Encryption Standard,縮寫:AES),在密碼學中又稱Rijndael加密法,是美國聯邦政府采用的一種區塊加密标準。這個标準用來替代原先的DES,已經被多方分析且廣為全世界所使用。它要求區塊大小必須為128位,而密鑰長度則可以為128、196、256位。基于此我們來實作.NET Framework版本和.NET Core版本。

探讨.NET Core中實作AES加密和解密以及.NET Core為我們提供了什麼友善!前言
探讨.NET Core中實作AES加密和解密以及.NET Core為我們提供了什麼友善!前言
探讨.NET Core中實作AES加密和解密以及.NET Core為我們提供了什麼友善!前言
探讨.NET Core中實作AES加密和解密以及.NET Core為我們提供了什麼友善!前言

上述鹽位元組必須為至少8個位元組,否則報錯如下:

探讨.NET Core中實作AES加密和解密以及.NET Core為我們提供了什麼友善!前言
探讨.NET Core中實作AES加密和解密以及.NET Core為我們提供了什麼友善!前言
探讨.NET Core中實作AES加密和解密以及.NET Core為我們提供了什麼友善!前言
探讨.NET Core中實作AES加密和解密以及.NET Core為我們提供了什麼友善!前言
探讨.NET Core中實作AES加密和解密以及.NET Core為我們提供了什麼友善!前言

測試如下:

探讨.NET Core中實作AES加密和解密以及.NET Core為我們提供了什麼友善!前言
探讨.NET Core中實作AES加密和解密以及.NET Core為我們提供了什麼友善!前言
探讨.NET Core中實作AES加密和解密以及.NET Core為我們提供了什麼友善!前言

上述利用 RijndaelManaged 來執行個體化AES,最終該類繼承自 SymmetricAlgorithm 對稱算法類。通過我們執行個體化一個 Rfc2898DeriveBytes 來對密鑰密鑰和鹽循環疊代1000次進而實作加密,同了解密反向操作。

在.NET Core中對于對稱加密統一接口不再利用不同類而實作,對于非對稱加密當然和對稱加密接口就不同了,建立起來格外友善,不再是執行個體化對應的類,如下

探讨.NET Core中實作AES加密和解密以及.NET Core為我們提供了什麼友善!前言
探讨.NET Core中實作AES加密和解密以及.NET Core為我們提供了什麼友善!前言

由下可以看出直接定義了一個靜态方法來建立加密

探讨.NET Core中實作AES加密和解密以及.NET Core為我們提供了什麼友善!前言
探讨.NET Core中實作AES加密和解密以及.NET Core為我們提供了什麼友善!前言
探讨.NET Core中實作AES加密和解密以及.NET Core為我們提供了什麼友善!前言
探讨.NET Core中實作AES加密和解密以及.NET Core為我們提供了什麼友善!前言

當然命名空間依然是 System.Security.Cryptography 。我們直接看實作。

探讨.NET Core中實作AES加密和解密以及.NET Core為我們提供了什麼友善!前言
探讨.NET Core中實作AES加密和解密以及.NET Core為我們提供了什麼友善!前言
探讨.NET Core中實作AES加密和解密以及.NET Core為我們提供了什麼友善!前言
探讨.NET Core中實作AES加密和解密以及.NET Core為我們提供了什麼友善!前言
探讨.NET Core中實作AES加密和解密以及.NET Core為我們提供了什麼友善!前言
探讨.NET Core中實作AES加密和解密以及.NET Core為我們提供了什麼友善!前言
探讨.NET Core中實作AES加密和解密以及.NET Core為我們提供了什麼友善!前言

在.NET Core中實作對稱加密和非對稱加密無論是實作還是建立都更加簡潔,之前也并未去具體了解加密和解密相關内容,借此機會稍微了解下對應的加密是以花了一點時間。對于AES加密還沒怎麼具體去了解内部原理,隻是參照了一點資料,以此作為備忘錄,目前.NET Core僅支援AES、TripleDES、RSA。希望對在.NET Core項目中需要實作加密的童鞋提供一點幫助。接下來有時間我們繼續鞏固下線程基礎知識,敬請期待,待我學習完畢再來更新部落格和大家一起分享。

本文轉自Jeffcky部落格園部落格,原文連結:http://www.cnblogs.com/CreateMyself/p/6771652.html,如需轉載請自行聯系原作者

繼續閱讀