من در حال ایجاد بانک اطلاعاتی با ارزش رمزگذاری شده هستم.


بگذارید بگوییم من "جان" را ذخیره می کنم که رمزگذاری شده و به عنوان "یوکی" ذخیره می شود.

 John | یوکی

اکنون من "جانی" را ذخیره می کنم که رمزگذاری شده و به عنوان "کوادی" ذخیره می شود.

 جان | یوکی

جانی | کوادی

اکنون با ذخیره سازی فوق ، من هیچ نوع قابلیت جستجوی regex را نخواهم گرفت. اگر می خواستم "Jo٪" را جستجو کنم ، کار نخواهد کرد.

اما اگر مقادیر را پس از شکستن آنها ذخیره کنم ، چه می شود. به عنوان

 جو | یوکی ، کوادی
جوه | یوکی ، کوادی
جان | یوکی ، کوادی
جان | کوادی
جانی | کوادی

در اینجا جستجوهای regex "Jo٪" کار خواهند کرد ، "Joh٪" هر دو به Yoky و Koaddy می دهند ، این همان چیزی است که من می خواهم.

من می توانم یک نقص امنیتی آشکار را در بالا مشاهده کنم که هرکسی بتواند از Jo ، Joh استفاده کند.

بنابراین من تصمیم گرفتم که رمزگذاری اینها را ذخیره کنم.


من می توانم AES خردهای من را رمزگذاری کرده و آنها را ذخیره کنم.

 qkjklewr! j == | یوکی ، کوادی
klkadsopos == | یوکی ، کوادی
ensd٪ 21op == | یوکی ، کوادی
kaknvp23b02 == | کوادی
kashdi2094j == | کوادی

هنگام انجام هر نوع جستجو می گویند ، "جان" ، من ابتدا "یوه" را رمزگذاری می کنم و سپس جستجو را انجام می دهم ، بنابراین به مقدار رمزگذاری شده AES از "جوه" ، یعنی klkadsopos ==


توجه می کند. : هر دو ستون برای محافظت از داده ها از کلیدها و الگوریتم های مختلفی استفاده خواهند کرد.


توجه: این ذخیره سازی رمزگذاری شده TDE خواهد بود.

باید درک کنم که آیا من اینجا چیزی اساسی را از دست داده ام.