usingMaths.com
Demonstrating and showing pupils and students one application of Mathematics.



Versions on Hashes Algorithm in Java




loading...
Algorithm by: Educator usingMaths

Our Hash code in Java.


Hash Class File:

package miscellaneous;

import java.math.BigInteger;

public class Hashes {

    public Hashes() {
    }

    public String hashWord(char[] msg) {
        // encoding eqn { Tn = (n-2)t1 + 2^n } - please use your own eqn
        String hash = "";
        BigInteger n;
        BigInteger t1;
        BigInteger x;
        for (int i = 0; i < msg.length; i++) {
            // get unicode of this character as n
            n = BigInteger.valueOf((int) msg[i]);
            t1 = BigInteger.valueOf(i + 1);
            // use recurrence series equation to hash
            x = n.subtract(BigInteger.valueOf(2)).multiply(t1).add(BigInteger.valueOf(2).pow(n.intValue()));
            if (i == 0) {
                hash = x.toString();
                continue;
            }
            // bitwise rotate left with the modulo of x
            String binary = (new BigInteger(hash)).toString(2);
            x = x.mod(BigInteger.valueOf(binary.length()));

            char[] slice_1 = binary.substring(x.intValue()).toCharArray();
            // keep as '1' to preserve hash size
            slice_1[0] = '1';

            String slice_2 = binary.substring(0, x.intValue());

            hash = String.valueOf(slice_1) + slice_2;
            hash = (new BigInteger(hash, 2)).toString();
        }
        hash = (new BigInteger(hash)).toString(16);
        hash = hash.toUpperCase();

        return hash;
    }
}


Main Class:

package miscellaneous;

public class Miscellaneous {

    public static void main(String[] args) {
        char[] message = "merry xmas".toCharArray();
        
        Hashes one_way = new Hashes();
        String hashed = one_way.hashWord(message);
        
        System.out.println("Message is '" + String.valueOf(message) +
                "';\nMessage hash is " + hashed);
    }

}


Try it out!

Ownership (1) Simplicity (0.0) Elegance (0.0)
loading...
colormap #003366 #336699 #3366CC #003399 #000099 #0000CC #000066 #006666 #006699 #0099CC #0066CC #0033CC #0000FF #3333FF #333399 #669999 #009999 #33CCCC #00CCFF #0099FF #0066FF #3366FF #3333CC #666699 #339966 #00CC99 #00FFCC #00FFFF #33CCFF #3399FF #6699FF #6666FF #6600FF #6600CC #339933 #00CC66 #00FF99 #66FFCC #66FFFF #66CCFF #99CCFF #9999FF #9966FF #9933FF #9900FF #006600 #00CC00 #00FF00 #66FF99 #99FFCC #CCFFFF #CCCCFF #CC99FF #CC66FF #CC33FF #CC00FF #9900CC #003300 #009933 #33CC33 #66FF66 #99FF99 #CCFFCC #FFFFFF #FFCCFF #FF99FF #FF66FF #FF00FF #CC00CC #660066 #336600 #009900 #66FF33 #99FF66 #CCFF99 #FFFFCC #FFCCCC #FF99CC #FF66CC #FF33CC #CC0099 #993399 #333300 #669900 #99FF33 #CCFF66 #FFFF99 #FFCC99 #FF9999 #FF6699 #FF3399 #CC3399 #990099 #666633 #99CC00 #CCFF33 #FFFF66 #FFCC66 #FF9966 #FF6666 #FF0066 #CC6699 #993366 #999966 #CCCC00 #FFFF00 #FFCC00 #FF9933 #FF6600 #FF5050 #CC0066 #660033 #996633 #CC9900 #FF9900 #CC6600 #FF3300 #FF0000 #CC0000 #990033 #663300 #996600 #CC3300 #993300 #990000 #800000 #993333
Drop Your Version!
Login Please!

colormap #003366 #336699 #3366CC #003399 #000099 #0000CC #000066 #006666 #006699 #0099CC #0066CC #0033CC #0000FF #3333FF #333399 #669999 #009999 #33CCCC #00CCFF #0099FF #0066FF #3366FF #3333CC #666699 #339966 #00CC99 #00FFCC #00FFFF #33CCFF #3399FF #6699FF #6666FF #6600FF #6600CC #339933 #00CC66 #00FF99 #66FFCC #66FFFF #66CCFF #99CCFF #9999FF #9966FF #9933FF #9900FF #006600 #00CC00 #00FF00 #66FF99 #99FFCC #CCFFFF #CCCCFF #CC99FF #CC66FF #CC33FF #CC00FF #9900CC #003300 #009933 #33CC33 #66FF66 #99FF99 #CCFFCC #FFFFFF #FFCCFF #FF99FF #FF66FF #FF00FF #CC00CC #660066 #336600 #009900 #66FF33 #99FF66 #CCFF99 #FFFFCC #FFCCCC #FF99CC #FF66CC #FF33CC #CC0099 #993399 #333300 #669900 #99FF33 #CCFF66 #FFFF99 #FFCC99 #FF9999 #FF6699 #FF3399 #CC3399 #990099 #666633 #99CC00 #CCFF33 #FFFF66 #FFCC66 #FF9966 #FF6666 #FF0066 #CC6699 #993366 #999966 #CCCC00 #FFFF00 #FFCC00 #FF9933 #FF6600 #FF5050 #CC0066 #660033 #996633 #CC9900 #FF9900 #CC6600 #FF3300 #FF0000 #CC0000 #990033 #663300 #996600 #CC3300 #993300 #990000 #800000 #993333
Remark!
Login Please!

colormap #003366 #336699 #3366CC #003399 #000099 #0000CC #000066 #006666 #006699 #0099CC #0066CC #0033CC #0000FF #3333FF #333399 #669999 #009999 #33CCCC #00CCFF #0099FF #0066FF #3366FF #3333CC #666699 #339966 #00CC99 #00FFCC #00FFFF #33CCFF #3399FF #6699FF #6666FF #6600FF #6600CC #339933 #00CC66 #00FF99 #66FFCC #66FFFF #66CCFF #99CCFF #9999FF #9966FF #9933FF #9900FF #006600 #00CC00 #00FF00 #66FF99 #99FFCC #CCFFFF #CCCCFF #CC99FF #CC66FF #CC33FF #CC00FF #9900CC #003300 #009933 #33CC33 #66FF66 #99FF99 #CCFFCC #FFFFFF #FFCCFF #FF99FF #FF66FF #FF00FF #CC00CC #660066 #336600 #009900 #66FF33 #99FF66 #CCFF99 #FFFFCC #FFCCCC #FF99CC #FF66CC #FF33CC #CC0099 #993399 #333300 #669900 #99FF33 #CCFF66 #FFFF99 #FFCC99 #FF9999 #FF6699 #FF3399 #CC3399 #990099 #666633 #99CC00 #CCFF33 #FFFF66 #FFCC66 #FF9966 #FF6666 #FF0066 #CC6699 #993366 #999966 #CCCC00 #FFFF00 #FFCC00 #FF9933 #FF6600 #FF5050 #CC0066 #660033 #996633 #CC9900 #FF9900 #CC6600 #FF3300 #FF0000 #CC0000 #990033 #663300 #996600 #CC3300 #993300 #990000 #800000 #993333
Edit Your Algorithm!
Login Please!

colormap #003366 #336699 #3366CC #003399 #000099 #0000CC #000066 #006666 #006699 #0099CC #0066CC #0033CC #0000FF #3333FF #333399 #669999 #009999 #33CCCC #00CCFF #0099FF #0066FF #3366FF #3333CC #666699 #339966 #00CC99 #00FFCC #00FFFF #33CCFF #3399FF #6699FF #6666FF #6600FF #6600CC #339933 #00CC66 #00FF99 #66FFCC #66FFFF #66CCFF #99CCFF #9999FF #9966FF #9933FF #9900FF #006600 #00CC00 #00FF00 #66FF99 #99FFCC #CCFFFF #CCCCFF #CC99FF #CC66FF #CC33FF #CC00FF #9900CC #003300 #009933 #33CC33 #66FF66 #99FF99 #CCFFCC #FFFFFF #FFCCFF #FF99FF #FF66FF #FF00FF #CC00CC #660066 #336600 #009900 #66FF33 #99FF66 #CCFF99 #FFFFCC #FFCCCC #FF99CC #FF66CC #FF33CC #CC0099 #993399 #333300 #669900 #99FF33 #CCFF66 #FFFF99 #FFCC99 #FF9999 #FF6699 #FF3399 #CC3399 #990099 #666633 #99CC00 #CCFF33 #FFFF66 #FFCC66 #FF9966 #FF6666 #FF0066 #CC6699 #993366 #999966 #CCCC00 #FFFF00 #FFCC00 #FF9933 #FF6600 #FF5050 #CC0066 #660033 #996633 #CC9900 #FF9900 #CC6600 #FF3300 #FF0000 #CC0000 #990033 #663300 #996600 #CC3300 #993300 #990000 #800000 #993333
Edit Your Remark!
Login Please!

Delete Post >

Delete Comment >

Please wait...