Js encrypt decrypt C# SymmetricAlgorithm

frontend、backend 加解密

js CryptoJs Aes : https://cryptojs.gitbook.io/docs/

c# Aes : https://docs.microsoft.com/zh-tw/dotnet/api/system.security.cryptography.aes?view=netframework-4.8

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

前端傳參數至後端參數,需encrypt、decrypt過程,使用 cryptojs Aes處理,看了很多範本,實際做過,才知中間細節

Aes 對稱式加密,需 key 32位、iv 16位使用

當frontend在encrypt時,先 Encoding.UTF8.GetBytes,然在CryptoJS.enc.Base64.stringify時,
backend在decrypyt接時,也需同樣流程轉換 Convert.FromBase64String,然在 Encoding.UTF8.GetString

紅 : 登入前的帳號,和經過UTF8、Base64、encrypt的 log,藍為登入後的 logout顯示

當backend在encrypt時,先 Encoding.UTF8.GetBytes,然在 Convert.ToBase64String時,
frontend在decrypt時,就不一定同流程轉換,只需CryptoJS.enc.Utf8

紅 : 後端傳回經過UTF8、ToBase64String、encrypt,藍 : decrypt 的log

ref : 

c# : https://blog.johnwu.cc/article/net-core-aes-cryptography.html 非常簡短,比官方還短,謝謝有重構過的代碼

Js :

 https://cryptojs.gitbook.io/docs/

http://jser.io/2014/08/19/how-to-use-aes-in-crypto-js-to-encrypt-and-decrypt

https://blog.zhengxianjun.com/2015/05/javascript-crypto-js/

雜湊不是加密,雜湊不是加密,雜湊不是加密 : https://dotblogs.com.tw/regionbbs/2017/09/21/hashing_is_not_encryption