Selasa, 20 Juli 2010

Tutorial Axis

Buzz It
Tutorial Axis

Tutorial Axis

1. Pengantar


Axis adalah Project Open Source dalam lingkungan Apache.org yang dikembangkan untuk menyediakan wahana bagi web service dengan Java.



2. Bagaimana Menginstal Axis


Untuk menggunakan Axis, hal-hal yang perlu Anda persiapan & butuhkan adalah sebagai berikut:

  • Java Development Kit

  • Web application server/container

  • XML parser

A. Proses Installation

Proses installasi Axis mencakup :

Download installation file >> Extract >> Deploy ke web application server/container, seperti Tomcat.

Jika anda belum mempunyai programnya, anda bisa mengunggahnya DISINI.

B. Extract

Jika Anda menggunakan OS Linux, installation file yang Anda download bernama “xml-axis-beta2.tar.gz” Tentukan di mana Anda akan meng-install. Misalkan Anda akan meng-install ke directory /home/lab. Pindahkan file xml-axis-beta2.tar.gz ke directory pilihan Anda tersebut, selanjutnya jalankan unzip melalui console dari directory tersebut.

$ gunzip xml-axis-beta2.tar.gz

$ tar -xvf xml-axis-beta2.tar

Maka installation file akan di-extract :

xml-axis-beta2/

xml-axis-beta2/LICENSE

xml-axis-beta2/README

xml-axis-beta2/release-notes.html

xml-axis-beta2/docs/

xml-axis-beta2/docs/architecture-guide.html

Sehingga akan berakhir (menciptakan directory) sebagai berikut :

xml-axis-beta2/webapps/axis/WEB-INF/lib/ xml-axis-beta2/webapps/axis/WEB-INF/lib/axis.jar xml-axis-beta2/webapps/axis/WEB-INF/lib/commons-logging.jar xml-axis-beta2/webapps/axis/WEB-INF/lib/jaxrpc.jar xml-axis-beta2/webapps/axis/WEB-INF/lib/log4j-core.jar xml-axis-beta2/webapps/axis/WEB-INF/lib/tt-bytecode.jar xml-axis-beta2/webapps/axis/WEB-INF/lib/wsdl4j.jar

Anda akan mendapatkan sebuah sub directory xml-axis-beta2 di bawah directory /home/lab.

3. Struktur Directory Di Bawah AXIS_HOME

Di dalam directory AXIS_HOME terdapat beberapa sub directory, di antaranya adalah:

  • lib, di mana file-file library ber-extension .jar berada.

  • webapps, di mana webapp Axis berada.

4. Buat Keputusan Tentang Nama WebApp

Axis dapat dipandang sebagai sebuah aplikasi web dan untuk menghidupkannya dibutuhkan web application server/container seperti Tomcat. Sebelum men-deploy Axis, Anda perlu menetapkan nama webapp dimana Axis akan dideploy.

5. Deployment ke atas Tomcat

Untuk menjadikan Axis sebagai webapp yang hidup dalam Tomcat, Anda hanya meng-copy directory AXIS_HOME/webapps/axis ke TOMCAT_HOME/webapps dengan mengubah nama directory axis menjadi nama directory pilihan Anda.

Contoh :

$ cp -R /home/lab/xml-axis-beta2/webapps/axis /home/lab/jakarta-tomcat-3.2.1 /webapps/mahakam

6. Mengeksekusi (Menjalankan) Tomcat.

$ export JAVA_HOME=/home/lab/jdk1.3.1_01 $ /home/lab/jakarta-tomcat-4.0.4/bin/startup.sh Using CATALINA_BASE: /home/lab/jakarta-tomcat-4.0.4 Using CATALINA_HOME: /home/lab/jakarta-tomcat-4.0.4 Using CATALINA_TMPDIR: /home/lab/jakarta-tomcat-4.0.4/temp Using JAVA_HOME: /home/lab/jdk1.3.1_01

7. Menguji Hasil Instalasi Axis

Untuk menguji apakah proses instalasi yang Anda lakukan berhasil, Anda dapat mencoba sample yang disediakan Axis.

Sebelum memulai, persiapkan dulu PATH dan CLASSPATH

Contoh :

$ export PATH=/home/lab/jdk1.3.1_01/bin:$PATH $ export CLASSPATH=/home/lab/xerces-2_0_2/xmlParserAPIs.jar:/home/lab/xerces-2_0_2 /xercesImpl.jar:/home/lab/xml-axis-beta2/lib/axis.jar:/home/lab/xml-axis-beta2/lib /jaxrpc.jar:/home/lab/xml-axis-beta2/lib/log4j-core.jar:/home/lab/xml-axis-beta2/lib /commons-logging.jar:/home/lab/xml-axis-beta2

Selanjutnya, lakukan deployment sebuah webservice :

Contoh :

$ java org.apache.axis.client.AdminClient -lhttp://localhost:8080/mahakam/services /AdminService /home/lab/xml-axis-beta2/samples/stock/deploy.wsdd

Jika berjalan sukses, akan muncul log berikut :

- Processing file /home/lab/xml-axis-beta2/samples/stock/deploy.wsdd

<Admin>Done processing</Admin>

Kemudian, lakukan pemanggilan web service tersebut melalui client.

$ java samples.stock.GetQuote -lhttp://localhost:8080/mahakam/servlet /AxisServlet -uuser1 -wpass1 XXX

Jika berjalan sukses, akan muncul log berikut :

XXX: 55.25

Download Artikel

Cara Instalasi Tomcat

Buzz It
Cara Instalasi Tomcat

Cara Instalasi Tomcat

1. Pengantar


JavaServlet dan Java Server Page merupakan solusi Java untuk pengembangan aplikasi berbasis Web. Untuk dapat bekerja, JavaServlet dan Java Server Page membutuhkan engine. Di antara engine yang tersedia sebagai open source adalah Tomcat. Tomcat dikembangkan sebagai bagian dari Project Jakarta yang bernaung di dalam Apache Software Foundation. Website tentang Tomcat dapat Anda dapatkan DISINI.



2. Proses Installation


Mendapatkan installation file


Jika Anda belum memiliki Installation file-nya Anda bisa mendownloadnya DISINI. Anda dapat juga dapat mendownload source file atau binary file. File tersedia dalam compressed file ber-extension .tar ataupun .zip.


Installation dengan ZIP file


Untuk meng-install Java Development Kit dari installation file ber-format ZIP, Anda dapat meng-unzipnya.


Misalkan di atas Linux, installation file yang Anda download bernama jakarta-tomcat-3.2.1.zip. Tentukan di mana Anda akan meng-install. Misalkan Anda akan meng-install ke directory /home/lab. Pindahkan file jakarta-tomcat-3.2.1.zip ke directory pilihan Anda tersebut, selanjutnya jalankan unzip melalui console dari directory tersebut.


$ unzip jakarta-tomcat-3.2.1.zip


Maka installation file akan di unzip :


Archive: jakarta-tomcat-3.2.1.zip

creating: jakarta-tomcat-3.2.1/

inflating: jakarta-tomcat-3.2.1/LICENSE

creating: jakarta-tomcat-3.2.1/webapps/

inflating: jakarta-tomcat-3.2.1/webapps/ROOT.war

inflating: jakarta-tomcat-3.2.1/webapps/test.war

inflating: jakarta-tomcat-3.2.1/webapps/examples.war

inflating: jakarta-tomcat-3.2.1/webapps/admin.war


Sehingga memiliki hasil akhir :


creating: jakarta-tomcat-3.2.1/src/org/apache/tomcat/startup/

inflating: jakarta-tomcat-3.2.1/src/org/apache/tomcat/startup/EmbededTomcat.java

inflating: jakarta-tomcat-3.2.1/src/org/apache/tomcat/startup/HostConfig.java

inflating: jakarta-tomcat-3.2.1/src/org/apache/tomcat/startup/Tomcat.java

creating: jakarta-tomcat-3.2.1/logs/


Anda akan mendapatkan sebuah sub directory jakarta-tomcat-3.2.1 di bawah directory /home/lab. Directory /home/lab/jakarta-tomcat-3.2.1 ini disebut TOMCAT_HOME. Selesailah proses instalasi Tomcat, dan Anda siap bekerja dengan JavaServlet dan Java Server Pages.



3. Struktur Directory Di Bawah TOMCAT_HOME


Di dalam directory TOMCAT_HOME terdapat beberapa sub directory, di antaranya adalah:


Bin = Kumpulan script(kode program) untuk menjalankan dan menghidupkan Tomcat.

Conf = Kumpulan file-file konfigurasi berada.

Lib = Kumpulan file-file library ber-extension .jar berada.

Webapps = Di mana, secara Default (standar), Anda dapat meletakkan JavaServlet dan JSP.



4. Proses Menjalankan (Mengeksekusi) Tomcat


Untuk menjalankan Tomcat maka Anda harus melakukan beberapa pengaturan sebagai berikut :


Set variabel lingkungan PATH agar memuat directory dimana java berada


Contoh :


$ export PATH=/home/lab/jdk1.3.1_01/bin:$PATH


Ganti directory-nya ke TOMCAT_HOME/bin


Contoh :


$ cd /home/lab/jakarta-tomcat-3.2.1/bin


Jalankan startup.bat


Contoh :


$ ./startup.sh


Tomcat akan berjalan


Contoh :


Guessing TOMCAT_HOME from tomcat.sh to ./..

Setting TOMCAT_HOME to ./..

Using classpath: ./../lib/ant.jar:./../lib/jasper.jar:./../lib/jaxp.jar:./../lib

/parser.jar:

./../lib/servlet.jar:./../lib/test:./../lib/webserver.jar:/home/lab/jdk1.3.1_01

/bin/../lib/tools.jar

[lab@localhost bin]$ 2002-06-03 09:57:41 - ContextManager:

Adding context Ctx( /examples )

2002-06-03 09:57:41 - ContextManager: Adding context Ctx( /admin )

Starting tomcat. Check logs/tomcat.log for error messages

2002-06-03 09:57:41 - ContextManager: Adding context Ctx( )

2002-06-03 09:57:41 - ContextManager: Adding context Ctx( /test )

2002-06-03 09:57:41 - PoolTcpConnector: Starting HttpConnectionHandler on 8080

2002-06-03 09:57:41 - PoolTcpConnector: Starting Ajp12ConnectionHandler on 8007


Kemudian cobalah anda uji melalui Web browser apakah proses installasi telah berhasil atau tidak.


Anda dapat melihat Tomcat dengan mem-browse ke http://localhost:8080



5. Proses Menghentikan Tomcat


Untuk menghentikan Tomcat :


Set variabel lingkungan PATH agar memuat directory di mana java berada


Contoh :


$ export PATH=/home/lab/jdk1.3.1_01/bin:$PATH


Ganti directory-nya ke TOMCAT_HOME/bin


Contoh :


$ cd /home/lab/jakarta-tomcat-3.2.1/bin


Jalankan startup.bat


Contoh :


$ ./shutdown.sh


Maka Tomcat akan berhenti.


Misalnya :


Guessing TOMCAT_HOME from tomcat.sh to ./..

Setting TOMCAT_HOME to ./..

Using classpath: ./../lib/ant.jar:./../lib/jasper.jar:./../lib/jaxp.jar:

./../lib/parser.jar:

./../lib/servlet.jar:./../lib/test:./../lib/webserver.jar:/home/lab

/jdk1.3.1_01/bin/../lib/tools.jar

Stop tomcat



6. Troubleshot


Beberapa trouble yang sering terjadi saat menjalankan Tomcat :


jika muncul command (komentar) seperti dibawah ini :


Cannot find JAVA. Please set your PATH.


Maka Anda perlu melakukan pengaturan Variabel lingkungan dengan benar agar memuat directory di mana java berada.


FATAL:java.net.BindException: Address already in use

java.net.BindException: Address already in use

at java.net.PlainSocketImpl.socketBind(Native Method)

at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:405)

at java.net.ServerSocket.(ServerSocket.java:170)

at java.net.ServerSocket.(ServerSocket.java:121)

at org.apache.tomcat.net.DefaultServerSocketFactory.createSocket

(DefaultServerSocketFactory.java:97)

at org.apache.tomcat.service.PoolTcpEndpoint.startEndpoint

(PoolTcpEndpoint.java:239)

at org.apache.tomcat.service.PoolTcpConnector.start

(PoolTcpConnector.java:188)

at org.apache.tomcat.core.ContextManager.start(ContextManager.java:527)

at org.apache.tomcat.startup.Tomcat.execute(Tomcat.java:202)

at org.apache.tomcat.startup.Tomcat.main(Tomcat.java:235)


Jika terdapat aplikasi lain atau Anda mendapati Tomcat sudah berjalan di port 8080 juga. Maka Anda dapat menghentikan aplikasi lain tsb, atau mengubah file konfigurasi server.xml di bawah directory TOMCAT_HOME/conf.


Download Artikel



Jumat, 16 Juli 2010

CSS Center Layout

Buzz It
CSS Center Layout

CSS Center Layout

Ever wanted to make centered (vertically, horizontally) webpage with hiding content for other (smaller) resolutions? Look at the demo page for an example.

First include the style sheet at the top of your code. Do it in tag, then you can write your code.



Source code for index.html



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

 

<head>

<title>My project</title>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<link media="screen" type="text/css" rel="stylesheet" href="webtoolkit.clayout.css" />

 

<style>

body {

margin: 0px;

padding: 0px;

font-family: verdana;

font-size: 12px;

}

 

div#layout { /* exploder 5.5+ */

width: expression((document.body.clientWidth > 790 ? document.body.clientWidth : 790) + "px");

height: expression((document.body.clientHeight > 490 ?document.body.clientHeight : 490) + "px");

}

 

div#container,

div#container div.container-top,

div#container div.container-bottom {

width: 790px;

}

 

div#container,

div#container div.container-right,

div#container div.container-left {

height: 490px;

}

 

/* colors */

div#container {

background: #FFFFFF;

}

 

div#container div.container-top {

background: #FF0000;

}

 

div#container div.container-right {

background: #00FF00;

}

 

div#container div.container-bottom {

background: #0000FF;

}

 

div#container div.container-left {

background: #FFFF00;

}

 

div#container div.container-top-right {

background: #00FFFF;

}

 

div#container div.container-bottom-right {

background: #FF00FF;

}

 

div#container div.container-bottom-left {

background: #C0C0C0;

}

 

div#container div.container-top-left {

background: #000000;

}

</style>


</head>

 

<body>

 

<div id="layout">

<div id="container">

<div class="container-top"></div>

<div class="container-right"></div>

<div class="container-bottom"></div>

<div class="container-left"></div>


<div class="container-top-right"></div>

<div class="container-bottom-right"></div>

<div class="container-bottom-left"></div>

<div class="container-top-left"></div>

 

Content goes here...

</div>

</div>

 

</body>

</html>



Source code for webtoolkit.clayout.css

body, html {

height: 100%;

}

 

div#layout { /* exploder 5.5+ */

position: absolute;

left: 0px;

top: 0px;

overflow: hidden;

text-align: center;

}

 

* > div#layout { /* normal browsers */

min-width: 790px;

min-height: 490px;

width: 100%;

height: 100%;

}

 

div#container {

position: relative;

top: 50%;

margin-top: -245px;

margin-left: auto;

margin-right: auto;

text-align: left;

}

 

div#container div.container-top {

position: absolute;

left: 0px;

top: -1000px;

height: 1000px;

}

 

div#container div.container-right {

position: absolute;

right: -1000px;

top: 0px;

width: 1000px;

}

 

div#container div.container-bottom {

position: absolute;

left: 0px;

bottom: -1000px;

height: 1000px;

}

 

div#container div.container-left {

position: absolute;

left: -1000px;

top: 0px;

width: 1000px;

}

 

div#container div.container-top-right {

position: absolute;

right: -1000px;

top: -1000px;

width: 1000px;

height: 1000px;

}

 

div#container div.container-bottom-right {

position: absolute;

right: -1000px;

bottom: -1000px;

width: 1000px;

height: 1000px;

}

 

div#container div.container-bottom-left {

position: absolute;

left: -1000px;

bottom: -1000px;

width: 1000px;

height: 1000px;

}

 

div#container div.container-top-left {

position: absolute;

left: -1000px;

top: -1000px;

width: 1000px;

height: 1000px;

}

Sumber : http://www.webtoolkit.info/css-centered-layout.html | Download Article



Bagaimana mengetahui kecepatan Port USB komputer kita!

Buzz It
Bagaimana mengetahui kecepatan Port USB komputer

Bagaimana mengetahui kecepatan Port USB komputer kita!

USB walau sepele namun kadang menjebak kita. Banyak peralatan-peralatan yang terhubung dengan komputer kita lewat port USB. Bahkan keluaran-keluaran terbaru hanya akan bekerja jika ditanjapkan pada PORT USB 2.0. Karena mungkin kurang kumplit dalam menginstal driver komputer kita menjadikan port USB kita hanya bekerja pada USB 1.0 atau bahkan karena komputer kita memang belum USB 2.0 ready (mungkin komputer peninggalan sejara lama).


Memang kalau kita mau membeli peralatan dengan interface USB 2.0 kita harus meyakinkan apakah komputer kita sudah siap USB 2.0. Sebenarnya cara mengetahuinya sangatlah mudah.


Untuk mengetahui apakan port usb kita termasuk Hi-Speed (USB 2.0) atau tidak adalah sebagai betikut :


1. Klik kanan pada MyComputer

2. pilih Properties (atau dari control panel pilih System),

3. kemudian pilihlah tab Hardware.

4. Di tab ini pilih Device manager dan

5. Jika di atas ada yang menunjukan Enhanced USB Host Controller, anda bisa lega karena kamu memiliki USB 2.0, namun jika tidak maka anda hanya memiliki port usb yang lebih lambat yakni USB 1.0 atau 1.1.

6. Jika anda belum melihat port USB anda 2.0 periksa lagi manul mobo-nya, jika memang ternyata hanya suport 1.0 atau 1.1 berarti memang komputer anda tak suport usb 2.0.


Ada salah satu cara bisa anda gunakan jika komputer anda tak dilengkapi USB 2.0. Anda bisa membeli Card PCI to USB 2.0, sehingga anda bisa memasang dan memiliki USB 2.0.

Sumber : Download Artikel



Actionscript UTF-8

Buzz It
Actionscript UTF-8

Actionscript UTF-8

The encoding known today as UTF-8 was invented by Ken Thompson. UTF-8 is a variable-length character encoding for Unicode.

It can represent any character in the Unicode standard, yet is backwards compatible with ASCII. Use this Actionscript to encode decode UTF-8 data.


Source code Actionscript utf-8


/**

*

* UTF-8 data encode / decode

* http://www.webtoolkit.info/

*

**/

 

var Utf8 = {

 

// public method for url encoding

encode : function (string) {

 

var utftext = "";

 

for (var n = 0; n < string.length; n++) {

 

var c = string.charCodeAt(n);

 

if (c < 128) {

utftext += String.fromCharCode(c);

}

else if((c > 127) && (c < 2048)) {

utftext += String.fromCharCode((c >> 6) | 192);

utftext += String.fromCharCode((c & 63) | 128);

}

else {

utftext += String.fromCharCode((c >> 12) | 224);

utftext += String.fromCharCode(((c >> 6) & 63) | 128);

utftext += String.fromCharCode((c & 63) | 128);

}

 

}

 

return utftext;

},

 

// public method for url decoding

decode : function (utftext) {

var string = "";

var i = 0;

var c = c1 = c2 = 0;

 

while ( i < utftext.length ) {

 

c = utftext.charCodeAt(i);

 

if (c < 128) {

string += String.fromCharCode(c);

i++;

}

else if((c > 191) && (c < 224)) {

c2 = utftext.charCodeAt(i+1);

string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));

i += 2;

}

else {

c2 = utftext.charCodeAt(i+1);

c3 = utftext.charCodeAt(i+2);

string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));

i += 3;

}

 

}

 

return string;

}

 

}

Sumber : http://www.webtoolkit.info | Download Article



Buzz It
Actionscript SHA-256

Actionscript SHA-256

The SHA (Secure Hash Algorithm) is one of the many cryptographic hash functions. It is suggested that SHA256 or greater must used for critical technology. This script is used to process variable length message into a fixed-length output using the SHA256 algorithm.

Source code SHA -256

/**

*

* Secure Hash Algorithm (SHA256)

*

**/


function SHA256(s){


var chrsz = 8;

var hexcase = 0;


function safe_add (x, y) {

var lsw = (x & 0xFFFF) + (y & 0xFFFF);

var msw = (x >> 16) + (y >> 16) + (lsw >> 16);

return (msw << 16) | (lsw & 0xFFFF);

}


function S (X, n) { return ( X >>> n ) | (X << (32 - n)); }

function R (X, n) { return ( X >>> n ); }

function Ch(x, y, z) { return ((x & y) ^ ((~x) & z)); }

function Maj(x, y, z) { return ((x & y) ^ (x & z) ^ (y & z)); }

function Sigma0256(x) { return (S(x, 2) ^ S(x, 13) ^ S(x, 22)); }

function Sigma1256(x) { return (S(x, 6) ^ S(x, 11) ^ S(x, 25)); }

function Gamma0256(x) { return (S(x, 7) ^ S(x, 18) ^ R(x, 3)); }

function Gamma1256(x) { return (S(x, 17) ^ S(x, 19) ^ R(x, 10)); }


function core_sha256 (m, l) {

var K = new Array(0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,

0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5, 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3, 0x72BE5D74, 0x80DEB1FE,

0x9BDC06A7, 0xC19BF174, 0xE49B69C1, 0xEFBE4786, 0xFC19DC6, 0x240CA1CC, 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA, 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7, 0xC6E00BF3, 0xD5A79147, 0x6CA6351, 0x14292967, 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13, 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85, 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3, 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070, 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5, 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3, 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208, 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2);

var HASH = new Array(0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A, 0x510E527F, 0x9B05688C, 0x1F83D9AB, 0x5BE0CD19);

var W = new Array(64);

var a, b, c, d, e, f, g, h, i, j;

var T1, T2;

 

m[l >> 5] |= 0x80 << (24 - l % 32);

m[((l + 64 >> 9) << 4) + 15] = l;

 

for ( var i = 0; i<m.length; i+=16 ) {

a = HASH[0];

b = HASH[1];

c = HASH[2];

d = HASH[3];

e = HASH[4];

f = HASH[5];

g = HASH[6];

h = HASH[7];

 

for ( var j = 0; j<64; j++) {

if (j < 16) W[j] = m[j + i];

else W[j] = safe_add(safe_add(safe_add(Gamma1256(W[j - 2]), W[j - 7]), Gamma0256(W[j - 15])), W[j - 16]);

T1 = safe_add(safe_add(safe_add(safe_add(h, Sigma1256(e)), Ch(e, f, g)), K[j]), W[j]);

T2 = safe_add(Sigma0256(a), Maj(a, b, c));

 

h = g;

g = f;

f = e;

e = safe_add(d, T1);

d = c;

c = b;

b = a;

a = safe_add(T1, T2);

}

 

HASH[0] = safe_add(a, HASH[0]);

HASH[1] = safe_add(b, HASH[1]);

HASH[2] = safe_add(c, HASH[2]);

HASH[3] = safe_add(d, HASH[3]);

HASH[4] = safe_add(e, HASH[4]);

HASH[5] = safe_add(f, HASH[5]);

HASH[6] = safe_add(g, HASH[6]);

HASH[7] = safe_add(h, HASH[7]);

}

return HASH;

}

 

function str2binb (str) {

var bin = Array();

var mask = (1 << chrsz) - 1;

for(var i = 0; i < str.length * chrsz; i += chrsz) {

bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (24 - i%32);

}

return bin;

}

 

function Utf8Encode(string) {

 

var utftext = "";

for (var n = 0; n < string.length; n++) {

 

var c = string.charCodeAt(n);

 

if (c < 128) {

utftext += String.fromCharCode(c);

}

else if((c > 127) && (c < 2048)) {

utftext += String.fromCharCode((c >> 6) | 192);

utftext += String.fromCharCode((c & 63) | 128);

}

else {

utftext += String.fromCharCode((c >> 12) | 224);

utftext += String.fromCharCode(((c >> 6) & 63) | 128);

utftext += String.fromCharCode((c & 63) | 128);

}

 

}

 

return utftext;

}

 

function binb2hex (binarray) {

var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";

var str = "";

for(var i = 0; i < binarray.length * 4; i++) {

str += hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8+4)) & 0xF) +

hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8 )) & 0xF);

}

return str;

}

 

s = Utf8Encode(s);

return binb2hex(core_sha256(str2binb(s), s.length * chrsz));

 

}

Sumber : http://www.webtoolkit.info/ | Download Artikel