0% found this document useful (0 votes)
93 views7 pages

Public Class SHA1

Uploaded by

namhaidn
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
93 views7 pages

Public Class SHA1

Uploaded by

namhaidn
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

public class SHA1 {

/*
* Bitwise rotate a 32-bit number to the left
*/
private static int rol(int num, int cnt) {
return (num << cnt) | (num >>> (32 - cnt));
}

/*
* Take a string and return the base64 representation of its SHA-1.
*/
public static String encode(String str) {

// Convert a string to a sequence of 16-word blocks, stored as an
array.
// Append padding bits and the length, as described in the SHA1
standard

byte[] x = str.getBytes();
int[] blks = new int[(((x.length + 8) >> 6) + 1) * 16];
int i;

for(i = 0; i < x.length; i++) {
blks[i >> 2] |= x[i] << (24 - (i % 4) * 8);
}

blks[i >> 2] |= 0x80 << (24 - (i % 4) * 8);
blks[blks.length - 1] = x.length * 8;

// calculate 160 bit SHA1 hash of the sequence of blocks

int[] w = new int[80];

int a = 1732584193;
int b = -271733879;
int c = -1732584194;
int d = 271733878;
int e = -1009589776;

for(i = 0; i < blks.length; i += 16) {
int olda = a;
int oldb = b;
int oldc = c;
int oldd = d;
int olde = e;

for(int j = 0; j < 80; j++) {
w[j] = (j < 16) ? blks[i + j] :
( rol(w[j-3] ^ w[j-8] ^ w[j-14] ^ w[j-16], 1) );

int t = rol(a, 5) + e + w[j] +
( (j < 20) ? 1518500249 + ((b & c) | ((~b) & d))
: (j < 40) ? 1859775393 + (b ^ c ^ d)
: (j < 60) ? -1894007588 + ((b & c) | (b & d) | (c & d))
: -899497514 + (b ^ c ^ d) );
e = d;
d = c;
c = rol(b, 30);
b = a;
a = t;
}

a = a + olda;
b = b + oldb;
c = c + oldc;
d = d + oldd;
e = e + olde;
}

// Convert 160 bit hash to base64

int[] words = {a,b,c,d,e,0};
byte[] base64 =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".getBytes()
;
byte[] result = new byte[28];
for (i=0; i<27; i++) {
int start=i*6;
int word=start>>5;
int offset=start & 0x1f;

if (offset <= 26) {
result[i] = base64[(words[word] >> (26 - offset)) & 0x3F];
} else if (offset == 28) {
result[i] = base64[(((words[word] & 0x0F) << 2) |
((words[word+1] >> 30) & 0x03)) & 0x3F];
} else {
result[i] = base64[(((words[word] & 0x03) << 4) |
((words[word+1] >> 28) & 0x0F)) & 0x3F];
}
}
result[27]='=';

return new String(result);
}

// public static void main(String args[]) {
// System.out.println(ma hoa(args[0]));
// }
}


2 .
M ha k t s dng phng thc SHA-1 v SHA-256 trong
ASP.Net

Chng ta to 1 Website gm:

Giao din Default.aspx
<div style="background:green;padding:10px; color: #FFFFFF;">
Kt qu : <asp:Label ID="lblKQ" runat="server" ForeColor="Red" Font-
Bold="true" Font-Size="13px"></asp:Label>
<br />
<asp:TextBox ID="txtNhap" runat="server" Height="30" Font-
Size="13px"></asp:TextBox>
<br />
<asp:Button ID="btnMaHoaSHA1" runat="server" OnClick="btnMaHoaSHA1_Click"
Text="M ha SHA-1"/>
<asp:Button ID="btnMaHoaSHA256" runat="server" OnClick="btnMaHoaSHA256_Cli
ck" Text="M ha SHA-256"/>
</div>

Code x l Default.aspx.cs
protected void btnMaHoaSHA1_Click(object sender, EventArgs e)
{
try
{
UnicodeEncoding UE = new UnicodeEncoding();
Byte[] hashBytes = UE.GetBytes(this.txtNhap.Text.Trim());
SHA1CryptoServiceProvider sha1c = new SHA1CryptoServiceProvider();
Byte[] crypt = sha1c.ComputeHash(hashBytes);
this.lblKQ.Text = BitConverter.ToString(crypt);
}
catch (Exception ex)
{
throw new Exception("M ha tht bi: " + ex.Message);
}
}
protected void btnMaHoaSHA256_Click(object sender, EventArgs e)
{
try
{
byte[] inputBytes
= ASCIIEncoding.ASCII.GetBytes(this.txtNhap.Text.Trim());
SHA256Managed hash = new SHA256Managed();
byte[] hashBytes = hash.ComputeHash(inputBytes);
this.lblKQ.Text = Convert.ToBase64String(hashBytes);
}
catch (Exception ex)
{
throw new Exception("M ha tht bi: " + ex.Message);
}
}


3.
Cho bn thienict !
Chng ta s thc hin m ha SHA-1 v SHA-256 trong java nh sau :

Bc u : to file encryptSHA.java vi ni dung :

package encrypt;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
*
* @author ku
*/
public class encryptSHA {
//Hm m ha 'sha' gm :
// 'text' chui gi tr cn m ha
// 'method' phng thc mun m ha
public static String sha(String text,String method) throws NoSuchAlgorithmException,
UnsupportedEncodingException {
MessageDigest md = MessageDigest.getInstance(method);
md.update(text.getBytes());//----- Bt u vic bm gi tr ca mng byte
byte byteData[] = md.digest();//-- Hon tt bm gi tr
StringBuffer sb = new StringBuffer();
for (int i = 0; i < byteData.length; i++) {//--- Lp theo gi tr ca mng byte gn vo
StringBuffer sb
sb.append(Integer.toString((byteData & 0xff) + 0x100, 16).substring(1));
}
return sb.toString();
}
}


Sau chng ta gi chng Main.java :

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package mahoasha;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.security.NoSuchAlgorithmException;
import encrypt.encryptSHA;
/**
*
* @author duaMun
*/
public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException, NoSuchAlgorithmException {
BufferedReader userInput = new BufferedReader (new InputStreamReader(System.in));
System.out.println("Nhp chui cn m ha:");
String rawString = userInput.readLine();
System.out.println("Chui sau khi m ha SHA-1: " + encryptSHA.sha(rawString,"SHA-1"));
System.out.println("Chui sau khi m ha SHA-256: " + encryptSHA.sha(rawString,"SHA-
256"));
}
}


Kt qu sau khi run c th hin nh sau
run:
Nhp chui cn m ha:
boDuaGroup
Chui sau khi m ha SHA-1: cac60633abaf7a3a7345058c789897c576dbaab3
Chui sau khi m ha SHA-256:
d0835e9f23548df51509a2230867d042c968d4567034d9ac95bc393cf187759d



M ha l g? v ti sao chng ta cn n?

Khi chng ta truyn thng ip t ni gi n ni nhn, nu m bo 100% l ni
nhn s nhn c thng tin nguyn vn v khng h b xm phm bi bt k ai, th
th lc y khng cn bt c hnh thc m ha no, ta c thng tin nh n vn th.
Nhng i khng nh l m, khng h c ci 100% , thng tin gi i c th b xem
trm bi ai y ch ng tn cng trn knh truyn tin (c th l ng th tn, ng
in thoi, mng internet...). Khi y k tn cng s xem cc thng tin cn bo mt mt
cch d dng.

Chnh vic m ha lm cho bn tn cng d c c thng tin th cng khng th hiu
c ni dung tr khi c kha gii m.

Ti nh ngy xa v ham bng qu m b ti cm ti khng c i chi cng
my a trong xm. Mi ln i bng, chng s gi tn ti, v d nhin b ti cng
nghe thy na nn ng cm tit. thay i tnh hung ny, ti bo chng bn gi
tn khc, thay v gi tn tht ca ti v ng bo l i bng. Ti la c b ti
vi ln nhng v sau ng cng pht hin ra quy lut :))

tnh hung trn l mt kiu m ha rt n gin. C ti v b u tip nhn cng
mt thng tin nhng v c tha thun t trc (kha gii m) nn ti hiu c
ngha ng sau ca cc thng ip cn b ti th khng.

C 5 thut ng quan trng cn phi nh, l:
Bn r: thng tin trc khi c m ha, khi c tip xc vi bn r mi
ngi u hiu c ngha ca n.
Bn mt: thng tin sau khi c m ha, v ngi khc khng th hiu c
ngha ca n.
M ha: l cch thc a bn r thnh bn mt.
Gii m: l cch thc a bn mt thnh bn r.
Kha: cng ging nh cha kha ngoi i, l phng tin gip cho vic gii
m.
Khi qu trnh m ha d liu c tin hnh v gi i, chng ta chp nhn gi thuyt
khng my vui v l d liu m ha c th b xem trm, nhng ta vn an tm v
chng s khng th hiu c ngha ca ng ln xn ! Ngay c bn thn chng
ta v c ngi nhn cng s chng hiu thng tin sau khi c m ha, iu duy nht
gip hiu c thng tin chnh l kha.

Do vy, vic bo mt kha l v cng quan trng, mt kha ng ngha vi mt thng
tin, n ging y nh vic bn ri kha kt st vo tay k trm vy.

Cu hi t ra: d k tn cng bit kha nhng lm sao hn bit c thut ton m
ha gii m?

Tr khi bn ngh ra c thut ton hon ton mi, cn khng cc thut ton m ha
v c bn l da trn cng mt nn tng. V vic k tn cng trnh cao nm r cc
thut ton gii m ny l iu c gi nh t trc. Ci duy nht m chng khng
bit l kha m thi.

Cu hi tip theo: nu ti truyn c kha theo cch an ton v bo mt th ti sao
ti khng s dng knh truyn thng tin - vic g phi m ha na?

Cu tr li l, thng tin truyn i c th rt ln, trong khi kha th thng rt nh gn.
N ging nh bn c c t ti liu to trong khi kha cho ng ti liu th nh hn
nhiu.

You might also like