មករា
វិធីសាស្រ្ត ENCRYPT & DECRYPT ដោយប្រើ Ms Access ជាមួយ C#
→ វីឌីអូណែនាំពី AI & ML & DL & DS មាននៅលើ Channel YouTube ANT Training Technology
https://www.youtube.com/watch?v=daZaQKvuaUo&t=3s
ដូចអ្នកបានដឹងហើយថាសព្វថ្ងៃនេះបច្ចេកវិទ្យា មានការរីកចម្រើនជាខ្លាំងនៅក្នុងពិភពលោកដូចជា: បច្ចេកវិទ្យាពិត៌មានវិទ្យា, បច្ចេកវិទ្យាសុខាភិបាល និងបច្ចេកវិទ្យាផ្សេងៗទៀត ។ យើងសូមលើកមកនិយាយបច្ចេកវិទ្យាព័ត៌មានវិទ្យានៅក្នុងប្រទេសកម្ពុជា ដែលជាបច្ចេកវិទ្យាមួយដែរ មានការរីកចម្រើនក្នុងរយៈពេលប៉ុន្មានឆ្នាំចុងក្រោយនេះ ឧទាហរណ៍មួយផ្នែកតូចដូចជា: ស្ទើរតែគ្រប់ហាងទំនិញធំៗ, ក្រុមហ៊ុន, អង្គការ, សាលារៀនឯកជននិងរដ្ឋ , សាកលវិទ្យាល័យឯកជននិងរដ្ឋ, ធនាគារឯកជននិងរដ្ឋ បានប្រើប្រាស់និងកំពុងបន្តបង្កើតប្រព័ន្ធគ្រប់គ្រងទិន្នន័យ សម្រាប់ធ្វើការគ្រប់គ្រងទិន្នន័យនៅក្នុងស្ថាប័នរៀងៗខ្លួន ។ ទិន្នន័យភាគច្រើនត្រូវបានរក្សាទុកនៅក្នុងកម្មវិធី MS Excel, MS Access, SQL Server ឬក៏ Oracle ទិន្នន័យទាំងនោះពិតជាមានសារៈសំខាន់ណាស់ ។ តើយើងត្រូវធ្វើដូចម្តេច ដើម្បី ឲ្យទិន្នន័យមាន security ខ្ពស់? ដូចនេះយើងសូមលើកយកវិធីសាស្រ្ត Encrypt Decrypt Data នៅក្នុង MS Access ដោយប្រើប្រាស់កម្មវិធី Visual Studio ជូនប្រិយមិត្តអ្នកអានជាពិសេស សិស្ស និស្សិត រៀនផ្នែកព័ត៌មានវិទ្យាទាំងអស់ឲ្យបានជ្រាប ។ សូមអនុវត្តន៍ តាមជំហានដូចខាងក្រោម៖
១. បង្កើត FORM
បង្កើត FORM ដែលមានលក្ខណៈដូចខាងក្រោម៖
• TextBox អ្នកប្រើប្រាស់ ដាក់ឈ្មោះ txtUserName
• TextBox លេខសម្ងាត់ ដាក់ឈ្មោះ txtPassword
• Button ចូលទៅកាន់ ដាក់ឈ្មោះ btnSignIn
• Button ចូលទៅកាន់ ដាក់ឈ្មោះ btnSignUp
២. បង្កើត Database
បើក Ms Access → New ៖
ដាក់ឈ្មោះ Database “db” រួចចុចលើ ICON Browse ទៅរកទីតាំងផ្ទុក Database ៖
ដាក់ Database File នៅក្នុង Project (ProjectName/bin/Debug) របស់យើងរួចចុច OK បន្ទាប់មក ចុច Create៖
បង្កើត Database ឈ្មោះ “user_account” នឹងមាន Fields (user_account_id,user_name,passwords) ៖
៣. បង្កើត Class ផ្ទុក Encrypt & Decryption Method
ដើម្បីបង្កើត Encrypt និង Decrypt ទិន្នន័យយើងនឹងធ្វើការបង្កើត Class មួយឈ្មោះ MyModel ផ្ទុក Method នឹងប្រើ Reference ជំនួយឈ្មោះ Microsotf.VisaulBasic ៖
Add Reference ៖
Right + Click លើ Reference បន្ទាប់មក ចុច Add Reference គ្រីសលើ Microsotf.VisaulBasic ។
បង្កើត MyModel ៖
Encryption Function
Encryption ជា Function ដែលមាន Datatype ជា String និងមាន Parameter ចំនួនមួយគឺ (strData) ។ នៅពេល Function នេះវាដំណើរការវានិងចាប់ផ្តើមបង្កើត Variable មួយឈ្មោះ mstrData ដែលមានទិន្នន័យស្មើនឹងទទេរ ។
- បន្ទាប់មកទៀតត្រង់ចំណុច For Loop វានឹងបង្កើត Variable ថ្មីមួយទៀតឈ្មោះ i ដែលតម្លៃចាប់ផ្តើមរបស់វាស្មើ ១ រហូតដល់តម្លៃវាស្មើនឹងចំនួន តួអក្សរសរុបនៃ strData ។ ដែលចំនួនតួអក្សរសរុបនោះបានមកពី Function Len (strData) ។
- ត្រង់ Code Mid (strData, i, 1) មានន័យថាចាប់យកតួអក្សររបស់ strData ត្រង់ទីតាំង i និងយកមួយតួអក្សរ ។ ឧទាហរណ៍ប្រសិនបើ strData=”abcde” , i=1 នោះវាចាប់បាន a , i=2 នោះវាចាប់បាន b ,... ។
- ត្រង់ Code Asc (Mid (strData, i, 1) ) – 10 មានន័យថាបន្ទាប់ពី Mid ចាប់បានតួអក្សរណាមួយ របស់ strData រួចហើយវានឹងបំប្លែងតួអក្សរនោះទៅជាតម្លៃ ASCII code របស់តួអក្សរនោះ បន្ទាប់មកទៀតវាយកតម្លៃនោះមកដកនិងចំនួន ១០ ។ បន្ទាប់មកទៀតវានឹងបំប្លែងតម្លៃ ASCII code នោះទៅជាតួអក្សរវិញតាមរយៈ ChrW (Asc (Mid (strData, i, 1) ) -10) ។ ជាចុងក្រោយ mstrData គឺស្មើ mstrData តជាមួយតួអក្សរដែលទទួលបាន ។
DECRYPTION FUNCTION
- Decryption ជា Function ដែលមាន Datatype ជា String និងមាន Parameter ចំនួនមួយគឺ (strData) ។ នៅពេល Function នេះវាដំណើរការវានិងចាប់ផ្តើមបង្កើត Variable មួយឈ្មោះ mstrData ដែលមានទិន្នន័យស្មើនឹងទទេរ ។
- បន្ទាប់មកទៀតត្រង់ចំណុច For Loop វានឹងបង្កើត Variable ថ្មីមួយទៀតឈ្មោះ i ដែលតម្លៃចាប់ផ្តើមរបស់វាស្មើ ១ រហូតដល់តម្លៃវាស្មើនឹងចំនួន តួអក្សរសរុបនៃ strData ។ ដែលចំនួនតួអក្សរសរុបនោះបានមកពី Function Len (strData) ។
- ត្រង់Code Mid (strData, i, 1) មានន័យថាចាប់យកតួអក្សររបស់ strData ត្រង់ទីតាំង i និងយកមួយតួអក្សរ ។ ឧទាហរណ៍ប្រសិនបើ strData=”abcde” , i=1 នោះវាចាប់បាន a , i=2 នោះវាចាប់បាន b ,... ។
- ត្រង់ Code Asc (Mid (strData, i, 1) ) + 10 មានន័យថាបន្ទាប់ពី Mid ចាប់បានតួអក្សរណាមួយរបស់ strData រួចហើយវានឹងបំប្លែងតួអក្សរនោះទៅជាតម្លៃ ASCII code របស់តួអក្សរនោះ បន្ទាប់មកទៀតវាយកតម្លៃនោះមកបូកនិងចំនួន ១០ ។ បន្ទាប់មកទៀតវានឹងបំប្លែងតម្លៃ ASCII code នោះទៅជាតួអក្សរវិញតាមរយៈ ChrW (Asc (Mid (strData, i, 1) ) +10) ។ ជាចុងក្រោយ mstrData គឺស្មើ mstrData តជាមួយតួអក្សរដែលទទួលបាន ។
បង្កើត Class UserAccount
UserAccount ជា Class បង្កើតឡើងសម្រាប់ Store Reference ពី Database ។ ដែលក្នុងនោះមាន Data Member ពីរគឺ ដែលប្រភេទទិន្នន័យជា string (userName, password) ដែលយើងបង្កើតសម្រាប់ជា Model សម្រួលដល់ការងារចាប់យកទិន្នន័យពី Table ក្នុង Database ។
ការសរសេរកូដ សម្រាប់ដំណើរការក្នុង Form
ដំណើរការកូដ៖
OleDbConnection ជា Class ភ្ជាប់ Application ជាមួយ Database ។ យើងបានសរសេរវាជាលក្ខណៈ Global ដើម្បីអាចប្រើជាទូទៅក្នុង Class ។
Event Load ក្នុង Form
ចំណុចនេះ នៅពេលកម្មវិធីដំណើការ វានឹងទៅបង្កើត object Connection ទៅកាន់ Ms Access ឈ្មោះ con ដែលមានឈ្មោះ Database “db.accdb” ដែលទីតាំងវានៅក្នុង Current Application របស់យើងបន្ទាប់មក យើងប្រើប្រាស់ Method Open () ដើម្បីដំណើរការ Connection ។ ក្នុងដំណើរការនេះយើងក៏បានដាក់ Try Catch ពិនិត្យ Error Connection នៅពេលមាន Exception ឬ Error កើតឡើងវាបោះ Message នៃ Error នោះ ។
InsertData Function
យើងប្រើប្រាស់ Function នេះសម្រាប់ Add ទិន្នន័យទៅកាន់ Database ។ Function នេះមាន parameter មួយជាប្រភេទ Model ដែលយើងបានបង្កើតឈ្មោះ UserAccount ។
នៅពេល Function ដំណើរការវានឹងពិនិត្យ Connection ថាតើបានបើកហើយ ឬនៅ?
បើមិនបើក វានឹងទៅ Call function open () ម្តងទៀត ។
OleDbCommand ជា Class Execute Query Database របស់ Ms Access ។
សម្រាប់ចំណុចនេះ យើងប្រើប្រាស់សម្រាប់ Assign តម្លៃពី Model របស់យើងទៅឲ្យ
cmd របស់ OleDbCommand ។
ជា Function សម្រាប់ Execute Command Sql ប្រើសម្រាប់នាំ Data ទៅកាន់ Database ។
GetData Function
GetMyData ជា Function មួយដែលមាន DataType ជា DataTable និងមាន Parameter ចំនួនមួយដែលមានប្រភេទទិន្នន័យជា String ។ នៅពេល Function នេះដំណើរការ វានឹងបង្កើត DataTable ថ្មីមួយគឺ obj ។ បន្ទាប់ទៀតវានិងបង្កើត adapter object សម្រាប់ execute sqlQuery ចេញពី Database ។ បន្ទាប់មកទៀតវានិង Fill Data ទៅឲ្យ DataTable (obj) ។ ជាចុងក្រោយវា return obj ទៅឲ្យ Function នេះ ។
Event btnSignUp_Click
នៅពេលយើងធ្វើការចុចលើ Button ដំណើការ Event នេះដែលមានមុខងារ Insert ទិន្នន័យទៅ Database ។
យើងប្រើប្រាស់ Ecryption សម្រាប់ Encrypte password ។
Insert ទិន្នន័យទៅកាន់ DB បើវាមិនមាន Error វា return តម្លៃមួយ បន្ទាប់វាពិនិត្យលក្ខខណ្ឌបើស្មើ 1 ពិតវាបោះ Message Success ។
Event btnSignIn_Click
ដំណើរការ
ចាប់តម្លៃពី Control txtUserName និង txtPassword ដាក់ចូលអញ្ញាត user & pass ។
ទាញទិន្នន័យពី Database ឈ្មោះ user_account មកលើដាក់ obj នៃ DataTable ។
ពិនិត្យលក្ខខណ្ឌបើសិន ទិន្នន័យទាញមក ធំជាង ០ ពិតធ្វើ បើមិនស្មើ ០ ឬ តូចជាងមិនពិតវានឹងបោះ Message Error UserName or Password
យើងប្រកាស អញ្ញាតពីរ check ជា bool & usr ជា string រួចធ្វើការ loop អាស្រ័យចំនួនធាតុពី object table ក្នុង loop យើង ពិនិត្យលក្ខខណ្ឌ បើតម្លៃនីមួយៗនៃ column ឈ្មោះ user_name ឈ្មោះ user និង passwords Decrypt មកវិញស្មើរ pass ពិតនោះវានឹង asign តម្លៃ true ទៅឲ្យ check និងតម្លៃនៃ user_name Asign ទៅឲ្យ usr ។ បន្ទាប់ពីបញ្ចប់ loop វាមកធ្វើលក្ខខណ្ឌ check បើពិតវាបោះ message “Hello [var] , Successfully! ! ” បើមិនពិត វាបោះ Message User Name or Password Wrong! !
♦ ដំណើរការកម្មវិធី
♦♦♦ សម្រាប់វគ្គបើកថ្មីៗជារៀងរាល់សប្តាហ៍សូមចូលទៅកាន់ www.antkh.com
♦♦♦ លេខទូរសព្ទទំនាក់ទំនង ០១០ /០១៦ ៦ង ៦៦ ៦៥៣
♦♦♦ facebook : https://www.facebook.com/anttrainning
♦♦♦ 💒ទីតាំង #86B ផ្លូវ 313 កែង 606 សង្កាត់បឹងកក់២ ទួលគោក
https://maps.app.goo.gl/cdi3hTED27tbHBaB9
♦ កម្មវិធី ANTLearner គឺជាកម្មវិធីបង្កើតក្នុងគោលបំណងចែករំលែកចំណេះដឹងទាក់ទងនឹងបច្ចេកវិទ្យាដល់មហាជនទូទៅ http://www.antclasses.com/help/page/download.html
មតិ និងយោបល់ទៅលើអត្ថបទនេះ (តាម Facebook)
ខាងក្រោមនេះជាយោបល់ផ្សេងៗរបស់អ្នកទស្សនា