【Flutter】數據庫實體類構造函數加密注意事項

源代碼:

AccountEntity(
{required String account,
required String password,})
: account = encrypter.encrypt(account,iv: iv).base64,
password = encrypter.encrypt(password,iv: iv).base64,;

解密代碼:

static final encrypter = Encrypter(AES(key));
encrypter.decrypt(Encrypted.fromBase64(src),iv: iv);

?假設:account = a; password=b; a加密后n0yvxAHkx5kZH3yB9brlsQ==

結果:

加密成功,數據庫里存儲的時間確實是加密后的數據n0yvxAHkx5kZH3yB9brlsQ==,但是解密就出問題了,解密的結果是數據庫里存儲的加密后的值n0yvxAHkx5kZH3yB9brlsQ==,跟沒解密一樣。

原因分析:

在數據庫查找到數據之后也會創建AccountEntity實體類,這時候傳入的是加密后的數據n0yvxAHkx5kZH3yB9brlsQ==,然后創建實體類就會再次調用encrypter.encrypt(account,iv: iv).base64,對數據進行了二次加密,所以解密是對n0yvxAHkx5kZH3yB9brlsQ==的密文進行了解密,得出了n0yvxAHkx5kZH3yB9brlsQ==。

解決方法:

不要在構造函數里加密

class AccountEntity {  String account;String password;AccountEntity({required this.account,required this.password});static AccountEntity createAccount({required String account,required String password,
}) {return AccountEntity(: account = encrypter.encrypt(account,iv: iv).base64,password = encrypter.encrypt(password,iv: iv).base64);}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/73351.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/73351.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/73351.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PMP沖刺每日一題(30)

試題1 標題:在項目執行期間,一名團隊成員識別到由以前未被識別為項目相關方的職能經理提交了新需求。項目經理應該怎么做? A、與項目發起人開會,獲得反饋 B、啟動實施整體變更控制過程 C、對需求執行成本效益分析 D、將該職能經理添加進溝通…

一文講通鎖標記對象std::adopt_lock盲點

一文講通鎖標記對象std::adopt_lock盲點 1. 核心概念2. 代碼詳解1. 單個鎖2. 多重鎖(可以用來預防死鎖)3. 條件變量的互斥控制4. 復雜示例: 多生產者-多消費者模型(超綱了, 可不看,哈哈哈哈) 3. 小結 1. 核心概念 在C中, std::adopt_lock是一…

LVI-SAM、VINS-Mono、LIO-SAM算法的閱讀參考和m2dgr數據集上的復現(留作學習使用)

ROS一鍵安裝參考: ROS的最簡單安裝——魚香一鍵安裝_魚香ros一鍵安裝-CSDN博客 opencv官網下載4.2.0參考:https://opencv.org/releases/page/3/ nvidia驅動安裝:ubuntu18.04 安裝顯卡驅動 - 開始戰斗 - 博客園 cuda搭配使用12 cuda安裝1:Ub…

基于jspm校園安全管理系統(源碼+lw+部署文檔+講解),源碼可白嫖!

摘要 隨著信息時代的來臨,過去信息校園安全管理方式的缺點逐漸暴露,本次對過去的校園安全管理方式的缺點進行分析,采取計算機方式構建校園安全管理系統。本文通過閱讀相關文獻,研究國內外相關技術,提出了一種集安全教…

基于NXP+FPGA軌道交通3U機箱結構牽引控制單元

基于NXPFPGA軌道交通異步電機牽引控制單元(TCU-IM) 異步電機牽引控制單元(TCU-IM)用于牽引逆變器-異步電機構成的牽引電傳動系統,可采用車控或架控方式。執行高性能異步電機復矢量控制策略,具有響應迅速、有效可靠的防空轉滑行控制…

《CircleCI:CircleCI:解鎖軟件開發持續集成(CI)和持續部署(CD)高效密碼》:此文為AI自動生成

《CircleCI:CircleCI:解鎖軟件開發持續集成(CI)和持續部署(CD)高效密碼》:此文為AI自動生成 一、CircleCI 初印象 在當今軟件開發的快節奏賽道上,持續集成(CI&#xff…

基于MySQL有用戶管理的音樂播放器

基于MySQL的音樂器 帶有用戶登錄功能驗證用戶身份,用戶注冊等操作還有用戶音樂列表,以及增刪查改操作 INSERT into users(username,passwd,phone_number,created_time,role) VALUES(‘張三’,‘123456’,‘123’,‘2025-3-11’,‘1’) 三張表&#xf…

差分專題練習 ——基于羅勇軍老師的《藍橋杯算法入門C/C++》

一、1.重新排序 - 藍橋云課 算法代碼&#xff1a; #include <bits/stdc.h> using namespace std; const int N 1e5 3;int a[N], d[N], cnt[N];int main() {int n; scanf("%d", &n);for (int i 1; i < n; i) scanf("%d", &a[i]);int m…

AI+視頻監控電力巡檢:EasyCVR視頻中臺方案如何賦能電力行業智能化轉型

隨著電力行業的快速發展&#xff0c;電力設施的安全性、穩定性和運維效率變得至關重要。傳統視頻監控系統在實時性、智能化及多系統協同等方面面臨嚴峻挑戰。EasyCVR視頻中臺解決方案作為一種先進的技術手段&#xff0c;在電力行業中得到了廣泛應用&#xff0c;為電力設施的監控…

【哈希表與字符串的算法之路:思路與實現】—— LeetCode

文章目錄 兩數之和面試題01.02.判定是否為字符重排存在重復元素存在重復元素||字母異位詞分組最長公共前綴和最長回文子串二進制求和字符串相乘 兩數之和 這題的思路很簡單&#xff0c;在讀完題目之后&#xff0c;便可以想到暴力枚舉&#xff0c;直接遍歷整個數組兩遍即可&…

RabbitMQ入門:從安裝到高級消息模式

文章目錄 一. RabbitMQ概述1.1 同步/異步1.1.1 同步調用1.1.2 異步調用 1.2 消息中間件1.2.1 概念1.2.2 作用1.2.3 常見的消息中間件1.2.4 其他中間件 1.3 RabbitMQ1.3.1 簡介1.3.2 特點1.3.3 方式1.3.4 架構1.3.5 運行流程 二. 安裝2.1 Docker 安裝 RabbitMQ 三. 簡單隊列&…

kernel與modules解耦

一、耦合&#xff1a; linux的kernel與modules存在耦合版本匹配&#xff0c;在版本不匹配&#xff08;內核重新編譯后&#xff0c;或者驅動模塊編譯依賴的內核版本跟運行版本不匹配&#xff09;時候&#xff0c;會存在insmod 驅動模塊失敗的情形&#xff1b; 二、解耦&#xff…

物理約束神經網絡(PINN)和有限元方法哪個更接近“真正的物理規律”?還是兩者只是不同的數學表達?

物理約束神經網絡(Physics-Informed Neural Networks, PINN)和有限元方法(Finite Element Method, FEM)是兩種在科學計算和工程模擬中廣泛應用的數值方法。PINN 依賴深度學習來近似微分方程的解,并在訓練過程中將物理約束作為損失項融入網絡,而 FEM 通過將連續介質的物理…

UI程序的std::cout重定向輸出到Visual Studio的debug輸出窗口

常用代碼。 UI程序的std::cout重定向輸出到Visual Studio的debug輸出窗口 #include <iostream> #include <streambuf> #include <vector> #include <string> #include <afxwin.h> //MFC// 自定義 streambuf 類&#xff0c;用于重定向輸出到 Vis…

Python開發合并多個PDF文件

前言 在我們的工作中&#xff0c;可能有以下場景需要用到合并多個PDF&#xff1a; 文檔歸檔&#xff1a;在企業或組織中&#xff0c;常常需要將相關的文檔&#xff08;如合同、報告、發票等&#xff09;合并為一個PDF文件&#xff0c;以便于歸檔和管理。 報告生成&#xff1a;在…

DeepSeek 助力 C++ 開發:探索智能編程新境界

這篇文章就會詳細講講 DeepSeek 在 C 開發里到底能怎么用&#xff0c;從上面說的寫代碼、找錯誤、優化性能&#xff0c;到管理項目這些方面&#xff0c;還會給出好多實際的代碼例子&#xff0c;講講實際用起來是啥情況。目的就是給那些做 C 開發的人&#xff0c;一份全面又詳細…

C#-使用VisualStudio編譯C#工程

一.創建csproj文件 二.創建源cs文件 三.生成解決方案 四.運行解決方案 五.VisualStudio功能列表 <1.代碼格式化: CtrlKD完成代碼整體格式化 <2.窗口布局 窗口->重置窗口布局 <3.引用查找&關聯 <4.包管理 <5.日志輸出級別 工具->選項->項目解決方案…

Kafka相關的面試題

以下是150道Kafka相關的面試題及簡潔回答&#xff1a; Kafka基礎概念 1. 什么是Kafka&#xff1f; Kafka是一個分布式、可擴展、容錯的發布-訂閱消息系統&#xff0c;最初由LinkedIn開發&#xff0c;現為Apache項目。它適用于高吞吐量的場景&#xff0c;如大數據處理和實時數據…

CTF--Web安全--SQL注入之報錯注入

CTF–Web安全–SQL注入之報錯注入 一、報錯注入的概念 用戶使用數據庫查詢語句&#xff0c;向數據庫發送錯誤指令&#xff0c;數據庫返回報錯信息&#xff0c;報錯信息中參雜著我們想要獲取的隱私數據。通常在我們在頁面顯示中找不到回顯位的時候&#xff0c;使用報錯注入。 二…

深度學習中學習率調整策略

學習率衰減策略是深度學習優化過程中的一個關鍵因素&#xff0c;它決定了訓練過程中學習率的調整方式&#xff0c;從而影響模型收斂的速度和效果。不同的衰減策略在不同的任務和模型上可能有不同的表現&#xff0c;下面從我用到過的幾個衰減策略進行記錄&#xff0c;后續慢慢跟…