Classic Cryptography

Secret Messages!!

I was always amazed by secret messages and Cryptography is the science applied for this. Modern cryptography has gone to a high standard as it’s bonded with mathematics, computer science and electrical engineering. I thought of giving a basic idea about classic cryptography for a change.
There are three methods in classic cryptography.

  • concealed messages (Steganography) – These hidden messages are written in invisible ink,microdots etc.
  • Codes – Here words or phrases are represented by predetermined words,numbers or symbols which were included in code books.
  • Ciphers – I feel this as the most challenging method in classic cryptography. In this context individual letters are disguised using various techniques.Basically this is divided in to 2.
    -> Substitution ciphers
    ->  Transposition ciphers
    I’ll give a brief idea about these 2 techniques.

 Substitution ciphers
Here letters in the message can be replaced with numbers,other letters,symbols or combinations of all these.Simple substitution cipher and multiple substitution cipher comes under this.

  • Simple substitution cipher –
    8-5-12-16
    Can you understand the cipher text above?
    It’s basically the simplest substitution that can be used. Each number stands for the letters of English alphabet in alphabetical order. We can see that the deciphered text is “HELP“.
    And also we can have a special cipher alphabet corresponding to the letters in the normal alphabet and encode.
  • Multiple substitution cipher –
    Message has to encode using a key word in multiple substitution.
    If we want to encode the message “Send a rescue team soon” with the key word “five” following steps should be followed.
    First match up key words with the letters of the message.s-e-n-d-a-r-e-s-c-u-e-t-e-a-m-s-o-o-n
    f   i  v e  f  i  v e  f  i  v e f   i  v  e  f   i  v

    Then follow the steps below taking the corresponding letters.
    If we take the first corresponding pair, s-19th letter and f-6th letter ->  s+f=25 -> 25th letter-y
    When it comes to the 3rd pair it’s a bit different.
    n-14th letter and v-22nd letter -> n+v=36
    As 36>26, 36-26=10 take the 10th letter “j”
    Like that we have to encrypt all the letters in the message.Final cipherd text would be “ynjigaaxidaykjixuxj “

    Transposition ciphers
    In this method letters in a message are jumbled and arranged in a block according to a secret scheme.Mostly this is done in a geometric design.
    If we want to encode the message “Meet me in the usual place at 10 tonight” it can be done as below in the simplest way.
    MEETMEIN
    THEUSUAL
    PLACEAT1
    0TON IGHT
    Transposition cipher when arranged in a rectangle is called a columnar cipher.It can be encoded using a key word.
    If we want to cipher the message “I need help” following steps should be followed.
    First arrange the message in a rectangular block.
    INE
    EDH
    ELP

    Then a key word must be chosen to assign a number to each column in the rectangle.If we select the key word “CAT” each letter is assigned a column of letters as below.

    CAT
    INE
    EDH
    ELP

    As  C-3rd letter,  A-1st letter, T-20th letter ,
    the alphabetical order of the key word will be A,C,T.
    So when encoding we have to take the column under A first, then the column under C,finally the column under T.
    It’ll give the final output,
    NIE
    DEH
    LEP

    These techniques can be developed in more complex ways too though I gave simple examples. Hope you got a basic idea about the techniques that were used in classic cryptography.


How to install MongoDB as a Windows Service

At the first date I heard about NoSQL DBMS, I felt insane. Then I got an eager to learn. But I didn’t pay any attention to learn. Later I got to know that MongoDB is a scalable one. Then I got a chance to follow free MongoDB course. Although I registered to both Developer and DBA courses I had no time to watch developer tutorials. But I finished DBA 1st Week. In that video tutorial they explain how to install MongoDB on Windows as well as on UNIX. But when we are using Mongo in Windows Development Environment it’s a headache to start service again and again. Because of that I wanted to install MongoDB as a Windows Service.

In that video tutorial they explain how to just run MongoDB on Windows Environment. First of all you should have a data directory. For that you should create two folders in the drive that you are planing to install MongoDB. Lets assume that we are going to install MongoDB on D: Drive.

Then you should create two directories(Folders) in D: drive

  • D:\data
  • D:\data\db

You can manually change data path but for a beginner its better to use default path. And if you are trying to install it as Service you need to create a log folder.

  • D:\log

Then open a command prompt and go to the MongoDB bin. I assume you have pasted it on D:\ drive. your directory path will look like this D:\mongodb-win32-x86_64-2.2.0\bin.

After that you should run mongod.exe to install MongoDB as a windows service.

mongod.exe --install --logpath D:\log

When you have type and enter this command on CMD. It will create a Service for MongoDB. You can start MongoDB service with below command.

net start MongoDB

Enjoy Mongo!!!!

Microsoft SQL Server පටන් ගමු!!

මම කලින් දාපු පෝස්ට් වල තියන SQL ස්ටේට්මන්ට් රන් කරලා පුරුදු වෙලා බලන්න විදිහක් මට පෝස්ට් කරන්න බැරි වුනා. ඇත්තටම සරල SQL ස්ටේට්මන්ට්ස් හැම එකක්ම වගේ ඕනම ඩේටාබේස් මැනෙජ්මන්ට් සිස්ටම් එකක රන් කරලා බලන්න පුලුවන් (Oracle DB, SQL Server, Access, MySQL). එත් මම පාවිච්චි කරන්නේ SQL Server ඉතින් මම හිතුවා SQL Server ඉගෙන ගන්න කැමති අයට ඒකට අවශ්‍ය දේවල් ඩව්න්ලෝඩ් කරගන්න තැන් පෝස්ට් කරන්න.

http://www.microsoft.com/en-us/download/details.aspx?id=29062

ඉහත දීලා තියන ලින්ක් එකෙන් ගිහින් ENU\x64\SQLEXPRWT_x64_ENU.exe හරි ENU\x86\SQLEXPRWT_x86_ENU.exe ඩව්න්ලෝඩ් කරගෙන ඉන්ස්ටෝල් කරගන්න. ඇත්තටම ඉන්ස්ටෝල් කරන එක එච්චර අමාරු නෑ. ඒවගේමයි මේ එඩිෂන් එක ඉගෙන ගන්න අයටම වෙන් කරපු එකක් ඒක හන්දා ලයිසන් ප්‍රශ්නයකුත් නෑ. තමුන්ගේ මෙහෙයුම් පද්ධතියට ගැලපෙන විදිහට 64බිට් හරි 32 බිට් හරි ඩව්න්ලෝඩ් කරගෙන ඉන්ස්ටෝල් කරගන්න. මේකේ ඇත්තටම වැදගත්ම දේ SQL Server Management Studio Express එක SSMS එකෙන් ලේසියෙන්ම අවශ්‍ය Queries ලියන්න පුලුවන්.

ඊට පස්සේ SQL Server ඉගෙන ගන්නවානම් ගොඩක් වැදගත් වන දෙයක් තමා සාම්පල් ඩේටාබේස් එක. ඇත්තටම AdventureWorks කියලා ගොඩක් ප්‍රසිද්ද සාම්පල් ඩේටාබේස් එකක් තියනවා. ඒක හැමෝම පාවිච්චි කරනවා. ඉතින් ඒකත් ඩව්න්ලෝඩ් කරගෙන SQL Server එකට ඇටැජ් කරගත්ත නම් SQL Server ඉගෙන ගන්න ගොඩක් ලේසි.

http://msftdbprodsamples.codeplex.com/releases/view/55330

ගිහින් පුලුවන් ඒ සාම්පල් ඩේටාබෙස් එක ඩව්න්ලෝඩ් කරගන්න. AdventureWorks2012 Data File කියන එක ඩව්න්ලෝඩ් කරගත්තා නම් ලේසි. නැත්නම් AdventureWorks2012-Full Database Backup ඩව්න්ලෝඩ් කරගෙන රිස්ටෝර් කරන්නත් පුලුවන්

SSLUG October 2012

Although it was a rainy day so many attendees were there to participate SQL Server Universe Monthly User Group Meeting. At the beginning Dinesh’s TV interview was on the screen until the meeting begins. And then we had 3 sessions one on Data migration to Dynamics, one on execution plan myths, and last one was about Paging Results in SQL Server.

_DSC5732

If you never knew about SQLServerUniverse User Group Meeting Please go to the site http://sqlserveruniverse.com/ and follow on twitter, linkedin and facebook. Don’t forget to register on the site. Usually it happens on 3rd Wednesday on every month.

Three Speeketeers

SELECT–SQL

SELECT ස්ටේට්මන්ට් එක ඩිවලොපර්ලා ඇතුලු හැමෝටම වැදගත් වෙන ස්ටේට්මන්ට් එකක්. වැඩියෙන්ම භාවිතා වෙන ස්ටේට්මන්ට් එක බොහෝ වෙලාවට මේක වෙන්නත් පුලුවන්. අපට අවශ්‍ය විදිහට ඩේටාබේස් එකේ ටේබල් කිහිපයකින්ම දත්ත ගැනීමට මේ ස්ටේට්මන්ට් වලට පුලුවන්. ඒවගේම ගණිත කර්ම කරන්නත් පුලුවන්.

උදාහරණයන් සදහා මම පහල තියන tblMarks ටේබල් එක දිගටම පාවිච්චි කරනවා.

ID Name Marks
1 Dedunu 67
2 Satheeq 87
3 Dinesh 98
4 Shamil 67
5 Hasitha 87
6 Abinandana 76

අපි හිතමු අපිට අවශ්‍යයි කියලා තියන දත්ත ඔක්කොම ටේබල් ගන්න අවශ්‍යයි කියලා. අපි පාවිච්චි කරන්න ඕන ස්ටේට්මන්ට් එක මේ වගේ එකක්.

SELECT * FROM dbo.tblMarks

මේ ස්ටේට්මන්ට් එක රන් කලොත් අපිට ලැබෙන්නේ මුලින්ම තියන වගුව වගේම ප්‍රතිඵලයක්. අපි හිතමු දැන් අපිට අවශ්‍ය වෙලා තියනවා කියලා නම් ලැයිස්තුවක් ඩේටාබේස් එකෙන් අරගන්න. එතකොට අපි රන් කරන්න ඕනේ පහත විදිහේ ස්ටේට්මන්ට් එකක්.

SELECT Name FROM dbo.tblMarks

නම් සමග ලකුනුත් අවශ්‍ය නම්  පාවිච්චි කරන්න ඕනේ මේ පහල තියන ස්ටේට්මන්ට් එක.

SELECT Name, Marks FROM dbo.tblMarks
Name Marks
Dedunu 67
Satheeq 87
Dinesh 98
Shamil 67
Hasitha 87
Abinandana 76

ලැබෙන ප්‍රතිඵලය ඉහත වගේ එකක්.  අපි හිතමු කාටහරි අවශ්‍ය වෙනවා නම් ලැයිතුව අකාරාදි පිලිවෙලට අරගන්න. එතකොට රන් කරන්න අවශ්‍ය පහත ස්ටේට්මන්ට් එක.

SELECT Name 
FROM dbo.tblMarks 
ORDER BY Name ASC

ස්ටේට්මන්ට් අතර අලුතෙන් ලයින් කොච්චර තිබුනත් ගැටලුවක් වෙන්නේ නැ. පහත ආකාරයට තමයි ඉහත තියන ස්ටේට්මන්ට් එකේ රිසාල්ට් සෙට් එක ලැබෙන්නේ.

Name
Abinandana
Dedunu
Dinesh
Hasitha
Satheeq
Shamil

අපි හිතමු ඒවගේම අපිට අවශ්‍ය වෙනවා ලකුනු වැඩියෙන්ම ගත්ත කෙනාගේ නමත් ලකුනුත් අරගන්න. ඒ සදහා අපිට පහත තියන ස්ටේට්මන්ට් එක පාවිච්චි කරන්න පුලුවන්.

SELECT Name, Marks
FROM dbo.tblMarks 
ORDER BY Marks DESC

එතකොට ඇත්තටම ලැබෙන්නේ පහත ආකාරයේ රිසාල්ට් සෙට් එකක්.

Name Marks
Dinesh 98
Satheeq 87
Hasitha 87
Abinandana 76
Dedunu 67
Shamil 67

SQL වල කොටස්

SQL එක එක කාර්යන් වලට වෙන්කරන ලද කොටස් තියනවා. ඇත්තටම එකම එක භාෂාවක් වුනාට එක එක කොටස් තියනවා එක එක දේවල් වලට.

DML – Data Manipulation Language

වැඩියෙන්ම SQL වල භාවිතා වෙන්නේ මම හිතන විදිහට DML Operation වෙන්න ඕන. මොකද Database එකක තියන දත්ත Database එකෙන් අරගන්න, Database එකේ තියන දත්ත වෙනස් කරන්න ඒවගේම දත්ත අලුතෙන් එකතු කරන්න තියන දත්ත මකන්න කියන හැමදේටම SQL වලදි අපි පාවිච්චි කරන්නේ DML.

උදා:-

  • SELECT
  • DELETE
  • INSERT
  • UPDATE

DDL – Data Definition Language

Database වල තියන දත්ත අපි ගබඩා කරලා තියන්නේ ටේබල් වල. ඒවගේ ටේබල්, ඉන්ඩෙක්, වීවිස් වගේ දේවල් ඩේටාබේස් එකේ හදන්න වෙනස් කරන්න මකන්න වගේ දේවල් වලට DDL භාවිතා කරනවා.

උදා:-

  • CREATE
  • DROP
  • ALTER

DCL – Data Control Language

DCL භාවිතා කරලා අපි කරන්නේ දත්ත පාවිච්චි කරන්න දත්ත මකන්න වෙනස් කරන්න එක එක පරිශීලකයන්ට අවශ්‍ය බලය ලබා දෙන්න. එවගේම දැනට තියන අයිතීන් ඉවත් කරන්න වෙනස් කරන්නත් මේ DCL භාවිතා කරනවා.

උදා:-

  • GRANT
  • REVOKE

SQL ගැන හැදින්වීමක්!

SQL යනු දත්ත සම්බන්ධයෙන් ඇති කාර්යන් ඉටු කරගැනීමට භාවිතා කරන භාෂාවකි. 5th Generation ලැන්ග්වෙජ් එකක් විදිහට SQL සලකනවා. ඒවගේම SQL කියන එක “SEQUEL” කියලා තමයි ගොඩක් අය කියන්නේ දැන් SQL කියන්නේ Structured Query Language වුනාට මේ ලැන්ග්වෙජ් එකට ඉස්සර Structured English Query Language කියලා තමා කියලා තියෙන්නේ. පස්සේ කාලෙක මේක SQL කරලා තියනවා. ඇත්තටම SQL එක්ක වැඩ කරන්න ලේසි.

SQL වලට Standard එකක් තිබුනත් සමාගම් තමුන්ගේ නිෂ්පාදන වලදි අලුත් අංග එකතු කරලා වෙනම භාෂාවල් විදිහට නම් කරනවා. Oracle පාවිච්චි කරන්නේ P-SQL එවගේම SQL Server පාවිච්චි කරන්නේ T-SQL. කොහොම වුනත් ගොඩක් වෙලාවට මූලික දේවල් එක වගේමයි.