Friday, February 23, 2018

எஸ்க்யூஎல் செர்வரில் பாஸ்வேர்டை என்கிரிப்ட் எப்படி செய்தல் வேண்டும்?




முதலில் எஸ்க்யூஎல் செர்வர் என்றால் என்ன என்று பார்ப்போம்.
இது டேட்டாபேஸ் சர்வர் ஆகும். நாம் மேனுவலாக டேட்டாவை ஸ்டோர் செய்தால் அதிலிருந்து தகவல்களை நமக்கு வேண்டிய முறையில் பெருதல் சற்று கடிதமானது ஆகும். உதாரணத்திற்கு 2000ம் பேர் படிக்கும் ஒரு பள்ளியில் மாணவர்களைப் பற்றிய டேட்டாபேஸில் 400க்கும் அதிகமான மாணவர்களைப் பற்றிய தகவல்கள் வேண்டுமானால் அதை அறிதல் கடிதானது ஆகும். இதுவே டேட்டாபேஸில் தகவல்களை ஸ்டோர் செய்தோம் என்றால் எளிதாக தகவல்களை கேட்டுப் பெறலாம்.
ஆரக்கிள், எஸ்க்யூஎல் செர்வர், மைஎஸ்க்யூஎல் ஆகியவை டேட்டாபேஸ் சாஃப்ட்வேர்களாகும். இதில் எஸ்க்யூஎல் செர்வர் என்பது மைக்ரோசாஃப்ட் நிறுவனத்தினமானது ஆகும்.
இதில் டேட்டாபேசை எவ்வாறு உருவாக்கலாம் என்று பார்ப்போம்.
Object explorer என்பதில் Database என்பதை வலது க்ளிக் செய்து நீயு டேட்டாபேஸ் என்பதை தேர்ந்தெடுக்கவும்.
அதில் டேட்டாபேஸ் பெயரைக் குறிப்பிட்டு கீழே ok என்பதைக் க்ளிக் செய்யவும்.(உதாரணமாக sample)

இப்பொழுது டூல்பாரில் new query என்பதை செலெக்ட் செய்யவும். அதில்
Use sample
என்று டைப் செய்து f5 ப்ரஸ் செய்யவும்.
இங்கு sample என்பதற்கு பதில் நமக்கு வேண்டிய டேட்டாபேஸ் பெய்ரைக் குடுக்கலாம்.
create table userdetails(userid int primary key, username varchar(50), password varbinary(100))

இதில் userdetails என்பது டேபிளின் பெயராகும்.
இதில் மூன்று காலம்ன்கள் உள்ளன. இதில் பாஸ்வேர்டு என்பதன் டேட்டா டைப்பாக Varbinary என்று கொடுத்துள்ளோம். அதாவது பாஸ்வேர்டு ஃபீல்டில் நாம் கொடுத்துள்ள டெக்ஸ்ட் ஆனது பைனரி ஃபார்மட்டில் இருக்கும்.

பாஸ்வர்டு ஃபீல்டை ஏன் என்கிரிப்ட் செய்தல் வேண்டும்.

யாராவது டேபிளை ஓபன் செய்து பார்த்தால் பாஸ்வர்டு ஃபீல்டில் என்ன உள்ளது அவர்களுக்கு தெரியக் கூடாது. அதன் காரணமாகத் தான் பாஸ்வர்டு ஃபீல்டை என்கிரிப்ட் செய்கின்றோம்.
 ஒரு ஃபீல்டை எவ்வாறு என்கிரிப்ட் செய்யலாம்?
கீழ்க்கண்ட ஃபங்க்சன் மூலம் என்கிரிப்ட் செய்யலாம்.

EncryptByPassPhrase:
இந்த ஃபங்க்சன் ஆனது DES அல்கரிதமை உபயோகித்து நம்முடைய டெக்ஸ்டை என்கிரிப்ட் செய்து
சிண்டாக்ஸ்:

Syntax

ENCRYPTBYPASSPHRASE ('PASSPHRASE','text')

இதில் உள்ள ஃபங்க்சன் இரண்டு ஆர்க்யூமெண்டுகளை ஏற்கின்றது. முதலில் உள்ளது எந்த பிரேஸ் உபயோகித்து என்கிரிப்ட் செய்ய வேண்டும் என்பதை குறிக்கின்றது. இரண்டாவது என்கிரிப்ட் செய்யப்பட டெக்ஸ்டை என்கிரிப்ட் செய்ய வேண்டும் என்பதைக் குறிப்பிட வேண்டும்.
insert into userdetails values(1,'Raja', ENCRYPTBYPASSPHRASE ('muthukarthikeyan','admin123'))
insert into userdetails values(2,'Anwar', ENCRYPTBYPASSPHRASE ('muthukarthikeyan','pass123'))
insert into userdetails values(3,'Raja', ENCRYPTBYPASSPHRASE ('muthukarthikeyan','123**'))

மேலே உள்ளது மூன்று ரோ இன்புட் கொடுக்கப் பட்டுள்ளது. இதற்கு INSERT என்கின்ற ஃபங்க்சன் உபயோகப்படுத்தப்படுகின்றது. பாஸ்வேர்டு ஆனது முதல் ரோவில் admin123 என்பதாகும். ஆனால் இந்த டெக்ஸ்ட் ஆனது muthukarthikeyan என்கின்ற பிரேஸ் உபயோகித்து என்கிரிப்ட் செய்யப் பட்டுள்ளது.

இப்பொழுது டேட்டாவை ரீட்ரைவ் செய்கி\ன்றோம்.

select * from userdetails

வெளியீடு:


மேலே உள்ள நிரலில்  மூன்றாவது காலம்ன் ஆக உள்ள password ஆனது என்கிரிப்ட் செய்யப் பட்டுள்ளதைக் காணலாம். இந்த ஃபீல்டை டிகிரிப்ட் செய்ய வேண்டுமென்றால்
கீழே உள்ளவாறு கோடிங் எழுத வேண்டும்.

select userid, username, convert(varchar(50), DECRYPTBYPASSPHRASE('muthukarthikeyan',password)) from userdetails

 டிகிரிப்ட் செய்யும் பொழுது அதே muthukarthikeyan என்கின்ற பிரேஸ் உபயோகப்படுத்தப்பட்டுள்ளது.  மேலும் அது varchar(50) என்ற டேட்டா டைப்பாக டைப் கேஸ்டிங்க் செய்யப்பட்டுள்ளது.
வெளியீடு:



நன்றி
முத்து கார்த்திகேயன்,மதுரை.








ads Udanz

No comments:

Post a Comment