亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sha256.java

?? 非常棒的java數據庫
?? JAVA
字號:
/*
 * Copyright 2004-2008 H2 Group. Licensed under the H2 License, Version 1.0
 * (http://h2database.com/html/license.html).
 * Initial Developer: H2 Group
 */
package org.h2.security;

import java.util.Arrays;

/**
 * This class implements the cryptographic hash function SHA-256.
 */
public class SHA256 {

    // TODO maybe implement WHIRLPOOL

    public byte[] getHashWithSalt(byte[] data, byte[] salt) {
        byte[] buff = new byte[data.length + salt.length];
        System.arraycopy(data, 0, buff, 0, data.length);
        System.arraycopy(salt, 0, buff, data.length, salt.length);
        return getHash(buff);
    }

    public byte[] getKeyPasswordHash(String userName, char[] password) {
        String user = userName + "@";
        byte[] buff = new byte[2 * (user.length() + password.length)];
        int n = 0;
        for (int i = 0; i < user.length(); i++) {
            char c = user.charAt(i);
            buff[n++] = (byte) (c >> 8);
            buff[n++] = (byte) (c);
        }
        for (int i = 0; i < password.length; i++) {
            char c = password[i];
            buff[n++] = (byte) (c >> 8);
            buff[n++] = (byte) (c);
        }
        Arrays.fill(password, (char) 0);
        return getHash(buff);
    }

    // The first 32 bits of the fractional parts of the cube roots of the first
    // sixty-four prime numbers
    private static final int[] K = { 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
            0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98,
            0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe,
            0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6,
            0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
            0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3,
            0xd5a79147, 0x06ca6351, 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 };


    public byte[] getHash(byte[] data) {
        int byteLen = data.length;
        int intLen = ((byteLen + 9 + 63) / 64) * 16;
        byte[] bytes = new byte[intLen * 4];
        System.arraycopy(data, 0, bytes, 0, byteLen);
        bytes[byteLen] = (byte) 0x80;
        int[] buff = new int[intLen];
        for (int i = 0, j = 0; j < intLen; i += 4, j++) {
            buff[j] = readInt(bytes, i);
        }
        buff[intLen - 2] = byteLen >>> 29;
        buff[intLen - 1] = (byteLen << 3) & 0xffffffff;
        int[] w = new int[64];
        int[] hh = new int[] { 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
                0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19 };

        for (int block = 0; block < intLen; block += 16) {
            for (int i = 0; i < 16; i++) {
                w[i] = buff[block + i];
            }
            for (int i = 16; i < 64; i++) {
                int x = w[i - 2];
                int theta1 = rot(x, 17) ^ rot(x, 19) ^ (x >>> 10);
                x = w[i - 15];
                int theta0 = rot(x, 7) ^ rot(x, 18) ^ (x >>> 3);
                w[i] = theta1 + w[i - 7] + theta0 + w[i - 16];
            }

            int a = hh[0], b = hh[1], c = hh[2], d = hh[3];
            int e = hh[4], f = hh[5], g = hh[6], h = hh[7];

            for (int i = 0; i < 64; i++) {
                int t1 = h + (rot(e, 6) ^ rot(e, 11) ^ rot(e, 25))
                        + ((e & f) ^ ((~e) & g)) + K[i] + w[i];
                int t2 = (rot(a, 2) ^ rot(a, 13) ^ rot(a, 22))
                        + ((a & b) ^ (a & c) ^ (b & c));
                h = g;
                g = f;
                f = e;
                e = d + t1;
                d = c;
                c = b;
                b = a;
                a = t1 + t2;
            }
            hh[0] += a;
            hh[1] += b;
            hh[2] += c;
            hh[3] += d;
            hh[4] += e;
            hh[5] += f;
            hh[6] += g;
            hh[7] += h;
        }
        byte[] result = new byte[32];
        for (int i = 0; i < 8; i++) {
            writeInt(result, i * 4, hh[i]);
        }
        Arrays.fill(w, 0);
        Arrays.fill(buff, 0);
        Arrays.fill(hh, 0);
        Arrays.fill(bytes, (byte) 0);
        return result;
    }

    private int rot(int i, int count) {
        return (i << (32 - count)) | (i >>> count);
    }

    private int readInt(byte[] b, int i) {
        return ((b[i] & 0xff) << 24) + ((b[i + 1] & 0xff) << 16)
                + ((b[i + 2] & 0xff) << 8) + (b[i + 3] & 0xff);
    }

    private void writeInt(byte[] b, int i, int value) {
        b[i] = (byte) (value >> 24);
        b[i + 1] = (byte) (value >> 16);
        b[i + 2] = (byte) (value >> 8);
        b[i + 3] = (byte) value;
    }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人av电影在线观看| 国产九九视频一区二区三区| 日韩欧美成人激情| 91女厕偷拍女厕偷拍高清| 国产精品小仙女| 色综合久久中文综合久久97| 国产精一品亚洲二区在线视频| 91尤物视频在线观看| 精品对白一区国产伦| 日韩三级在线观看| 精品少妇一区二区三区在线视频| 91精品国产综合久久久蜜臀粉嫩| 在线观看免费亚洲| 欧美色网一区二区| 日韩一区二区三区电影在线观看| 国产精品久久二区二区| 国产精品情趣视频| 一区二区中文视频| 亚洲第一成人在线| 日本vs亚洲vs韩国一区三区二区| 午夜精品一区二区三区三上悠亚| 蜜芽一区二区三区| 麻豆成人免费电影| 欧美日本精品一区二区三区| 欧美tk—视频vk| 午夜精品久久久久久久蜜桃app| 97aⅴ精品视频一二三区| 欧美视频精品在线| 亚洲精品中文在线影院| 日本中文字幕一区| 国产成人av自拍| 久久久久久久久久久黄色| 中文字幕va一区二区三区| 亚洲亚洲精品在线观看| 久久精品国产99| 色婷婷国产精品综合在线观看| 国产精品全国免费观看高清| 粉嫩高潮美女一区二区三区| 久久日韩粉嫩一区二区三区| 黑人精品欧美一区二区蜜桃| 色欧美88888久久久久久影院| 中文字幕亚洲精品在线观看| 97se亚洲国产综合在线| 一区二区在线观看免费视频播放| 色成年激情久久综合| 久久无码av三级| 亚洲高清视频中文字幕| 欧美日韩和欧美的一区二区| 午夜精品aaa| 日韩久久精品一区| 国产精品亚洲午夜一区二区三区 | 亚洲天堂久久久久久久| 日韩不卡一区二区三区 | 欧美日韩成人综合在线一区二区| 亚洲线精品一区二区三区| 欧美日韩一区二区三区在线 | 欧美日韩精品一区二区| 青娱乐精品视频在线| 欧美成人三级在线| 成人白浆超碰人人人人| 精品蜜桃在线看| 国产69精品一区二区亚洲孕妇| 欧美国产激情一区二区三区蜜月| 99久久精品国产麻豆演员表| 亚洲大片在线观看| 日韩精品一区二区在线观看| 成人深夜视频在线观看| 2欧美一区二区三区在线观看视频| 国产精品1区二区.| 亚洲激情中文1区| 日韩精品中文字幕一区| 成人黄色小视频在线观看| 亚洲成人动漫一区| 亚洲国产精品t66y| 欧美高清www午色夜在线视频| 亚洲一区免费在线观看| 色综合天天做天天爱| 综合色天天鬼久久鬼色| 欧美男生操女生| 风间由美中文字幕在线看视频国产欧美 | 日韩欧美一区二区免费| 成人av网站在线观看免费| 日本在线观看不卡视频| 国产精品乱子久久久久| 欧美一级理论性理论a| 色综合色综合色综合| 久久国产麻豆精品| 亚洲va在线va天堂| 亚洲天堂网中文字| 国产婷婷色一区二区三区在线| 国产一区二区三区黄视频| 欧美精品一区二区三区高清aⅴ | 国产黄色精品网站| 午夜精品久久久久久久久久久| 国产亚洲美州欧州综合国| 欧美日韩国产一区二区三区地区| 成人免费观看视频| 国产在线一区二区综合免费视频| 樱花影视一区二区| 一区二区中文字幕在线| 久久久久久久免费视频了| 51久久夜色精品国产麻豆| 一本一道久久a久久精品综合蜜臀 一本一道综合狠狠老 | 亚洲福利视频导航| 亚洲欧美一区二区三区孕妇| 欧美羞羞免费网站| 99久久久国产精品免费蜜臀| 狠狠色狠狠色综合| 免费的成人av| 热久久国产精品| 日韩精品午夜视频| 国产亚洲一区二区三区四区| 亚洲精品一区二区三区福利| 国产精品久久久久久久久免费樱桃 | 日韩制服丝袜先锋影音| 亚洲男人天堂av| 亚洲天堂福利av| 中文字幕字幕中文在线中不卡视频| 国产午夜精品福利| 久久久www成人免费无遮挡大片 | 91视频观看免费| 成人激情小说网站| 成人黄色a**站在线观看| 国产白丝网站精品污在线入口| 精久久久久久久久久久| 日本一区二区免费在线 | 欧美午夜片在线看| 在线观看一区不卡| 色综合av在线| 欧美视频一区在线观看| 欧美精品在线一区二区三区| 51精品秘密在线观看| 欧美久久久久久久久久| 日韩欧美一区在线| 久久精品一区八戒影视| 国产精品你懂的在线欣赏| 亚洲妇女屁股眼交7| 亚洲综合色成人| 日本不卡一二三| 国产一区二三区| 成人avav影音| 欧美在线不卡视频| 日韩欧美在线不卡| 久久精品视频网| 亚洲精品视频在线| 美女网站在线免费欧美精品| 韩国精品主播一区二区在线观看| 国产九色精品成人porny| 91麻豆swag| 日韩亚洲欧美一区| 国产精品丝袜在线| 日韩在线卡一卡二| 国产传媒日韩欧美成人| 在线看国产日韩| 欧美成人国产一区二区| 日韩理论片一区二区| 丝瓜av网站精品一区二区| 国产高清无密码一区二区三区| 91在线高清观看| 精品国产乱码久久久久久1区2区| 国产精品网站在线| 青椒成人免费视频| 97久久人人超碰| 精品日本一线二线三线不卡| 亚洲人一二三区| 久久aⅴ国产欧美74aaa| 色素色在线综合| 久久影视一区二区| 午夜欧美大尺度福利影院在线看 | 国产乱色国产精品免费视频| 91啦中文在线观看| 久久亚区不卡日本| 午夜精品久久久久影视| 不卡区在线中文字幕| 日韩欧美中文一区| 亚洲一区二区影院| 99久久伊人久久99| 成人免费视频视频| 日韩欧美精品在线| 亚洲国产一区二区三区青草影视| 成人深夜福利app| 26uuu色噜噜精品一区| 午夜激情久久久| 色综合久久综合| 国产精品久久久久久户外露出| 麻豆成人久久精品二区三区红| 在线精品视频一区二区| 国产精品久久久久久久岛一牛影视| 日本中文一区二区三区| 欧美四级电影网| 亚洲精品免费一二三区| 国产91精品露脸国语对白| 精品不卡在线视频| 蜜臀av性久久久久av蜜臀妖精| 欧美亚洲动漫精品| 亚洲自拍偷拍av| 欧美亚洲动漫精品| 亚洲一区二区三区小说| 欧洲生活片亚洲生活在线观看| 中文字幕在线观看一区|