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

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

?? blowfish.java

?? java 平臺 telnet 繁體中文版
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/****************************************************************************** * * Copyright (c) 1998,99 by Mindbright Technology AB, Stockholm, Sweden. *                 www.mindbright.se, info@mindbright.se * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * ***************************************************************************** * $Author: marcus $ * $Date: 2000/12/20 21:48:30 $ * $Name:  $ *****************************************************************************//* * !!! Author's comment: The contents of this file is heavily based * upon Bruce Schneier's (who is the inventor of the blowfish-algorithm) * c-code found in his book: * Bruce Schneier: Applied Cryptography 2nd ed., John Wiley & Sons, 1996 */package de.mud.ssh;import java.math.BigInteger;public final class Blowfish extends Cipher {  protected int[] S0 = new int[256];  protected int[] S1 = new int[256];  protected int[] S2 = new int[256];  protected int[] S3 = new int[256];  protected int[] P  = new int[18];  private int IV0;  private int IV1;  public Blowfish() { }  // Set key of this Blowfish from a String  public void setKey(String skey) {    byte[] key = skey.getBytes();    setKey(key);  }  // Set key of this Blowfish from a bytearray  public void setKey(byte[] key) {    int i, j, k, len = key.length;    int temp;    int L, R;    int[] output = new int[2];    System.arraycopy(blowfish_pbox, 0,   P,  0, 18);    System.arraycopy(blowfish_sbox, 0,   S0, 0, 256);    System.arraycopy(blowfish_sbox, 256, S1, 0, 256);    System.arraycopy(blowfish_sbox, 512, S2, 0, 256);    System.arraycopy(blowfish_sbox, 768, S3, 0, 256);    // Actual subkey generation    //    for(j = 0, i = 0; i < 16 + 2; i++) {      temp = (( (key[j] & 0xff)             << 24) |	      ( (key[(j + 1) % len] & 0xff) << 16) |	      ( (key[(j + 2) % len] & 0xff) << 8) |	      ( (key[(j + 3) % len] & 0xff)));      P[i] = P[i] ^ temp;      j = (j + 4) % len;    }    L = 0;    R = 0;    for(i = 0; i < 16 + 2; i += 2) {      encrypt(L, R, output);      L = output[0];      R = output[1];      P[i] = L;      P[i + 1] = R;    }    for(j = 0; j < 256; j += 2) {      encrypt(L, R, output);      L = output[0];      R = output[1];      S0[j] = L;      S0[j + 1] = R;    }    for(j = 0; j < 256; j += 2) {      encrypt(L, R, output);      L = output[0];      R = output[1];      S1[j] = L;      S1[j + 1] = R;    }    for(j = 0; j < 256; j += 2) {      encrypt(L, R, output);      L = output[0];      R = output[1];      S2[j] = L;      S2[j + 1] = R;    }    for(j = 0; j < 256; j += 2) {      encrypt(L, R, output);      L = output[0];      R = output[1];      S3[j] = L;      S3[j + 1] = R;    }    IV0 = 0;    IV1 = 0;  }  public synchronized void encrypt(byte[] src, int srcOff, byte[] dest, int destOff, int len) {    int[] out = new int[2];    int iv0 = IV0;    int iv1 = IV1;    int end = srcOff + len;    for(int si = srcOff, di = destOff; si < end; si += 8, di += 8) {      iv0 ^= ((src[si] & 0xff) | ((src[si + 1] & 0xff) << 8) |	      ((src[si + 2] & 0xff) << 16) | ((src[si + 3] & 0xff) << 24));      iv1 ^= ((src[si + 4] & 0xff) | ((src[si + 5] & 0xff) << 8) |	      ((src[si + 6] & 0xff) << 16) | ((src[si + 7] & 0xff) << 24));      encrypt(iv0, iv1, out);      iv0 = out[0];      iv1 = out[1];      dest[di]   = (byte)( iv0         & 0xff);      dest[di+1] = (byte)((iv0 >>> 8 ) & 0xff);      dest[di+2] = (byte)((iv0 >>> 16) & 0xff);      dest[di+3] = (byte)((iv0 >>> 24) & 0xff);      dest[di+4] = (byte)( iv1         & 0xff);      dest[di+5] = (byte)((iv1 >>> 8 ) & 0xff);      dest[di+6] = (byte)((iv1 >>> 16) & 0xff);      dest[di+7] = (byte)((iv1 >>> 24) & 0xff);    }    IV0 = iv0;    IV1 = iv1;  }  public void encrypt(int xL, int xR, int[] out) {    int L, R;    L = xL;    R = xR;    L ^= P[0];    R ^= ((((S0[(int)((L >>> 24) & 0xff)] + S1[(int)((L >>> 16) & 0xff)]) ^	     S2[(int)((L >>> 8) & 0xff)]) + S3[(int)(L & 0xff)]) ^ P[1]);    L ^= ((((S0[(int)((R >>> 24) & 0xff)] + S1[(int)((R >>> 16) & 0xff)]) ^	     S2[(int)((R >>> 8) & 0xff)]) + S3[(int)(R & 0xff)]) ^ P[2]);    R ^= ((((S0[(int)((L >>> 24) & 0xff)] + S1[(int)((L >>> 16) & 0xff)]) ^	     S2[(int)((L >>> 8) & 0xff)]) + S3[(int)(L & 0xff)]) ^ P[3]);    L ^= ((((S0[(int)((R >>> 24) & 0xff)] + S1[(int)((R >>> 16) & 0xff)]) ^	     S2[(int)((R >>> 8) & 0xff)]) + S3[(int)(R & 0xff)]) ^ P[4]);    R ^= ((((S0[(int)((L >>> 24) & 0xff)] + S1[(int)((L >>> 16) & 0xff)]) ^	     S2[(int)((L >>> 8) & 0xff)]) + S3[(int)(L & 0xff)]) ^ P[5]);    L ^= ((((S0[(int)((R >>> 24) & 0xff)] + S1[(int)((R >>> 16) & 0xff)]) ^	     S2[(int)((R >>> 8) & 0xff)]) + S3[(int)(R & 0xff)]) ^ P[6]);    R ^= ((((S0[(int)((L >>> 24) & 0xff)] + S1[(int)((L >>> 16) & 0xff)]) ^	     S2[(int)((L >>> 8) & 0xff)]) + S3[(int)(L & 0xff)]) ^ P[7]);    L ^= ((((S0[(int)((R >>> 24) & 0xff)] + S1[(int)((R >>> 16) & 0xff)]) ^	     S2[(int)((R >>> 8) & 0xff)]) + S3[(int)(R & 0xff)]) ^ P[8]);    R ^= ((((S0[(int)((L >>> 24) & 0xff)] + S1[(int)((L >>> 16) & 0xff)]) ^	     S2[(int)((L >>> 8) & 0xff)]) + S3[(int)(L & 0xff)]) ^ P[9]);    L ^= ((((S0[(int)((R >>> 24) & 0xff)] + S1[(int)((R >>> 16) & 0xff)]) ^	     S2[(int)((R >>> 8) & 0xff)]) + S3[(int)(R & 0xff)]) ^ P[10]);    R ^= ((((S0[(int)((L >>> 24) & 0xff)] + S1[(int)((L >>> 16) & 0xff)]) ^	     S2[(int)((L >>> 8) & 0xff)]) + S3[(int)(L & 0xff)]) ^ P[11]);    L ^= ((((S0[(int)((R >>> 24) & 0xff)] + S1[(int)((R >>> 16) & 0xff)]) ^	     S2[(int)((R >>> 8) & 0xff)]) + S3[(int)(R & 0xff)]) ^ P[12]);    R ^= ((((S0[(int)((L >>> 24) & 0xff)] + S1[(int)((L >>> 16) & 0xff)]) ^	     S2[(int)((L >>> 8) & 0xff)]) + S3[(int)(L & 0xff)]) ^ P[13]);    L ^= ((((S0[(int)((R >>> 24) & 0xff)] + S1[(int)((R >>> 16) & 0xff)]) ^	     S2[(int)((R >>> 8) & 0xff)]) + S3[(int)(R & 0xff)]) ^ P[14]);    R ^= ((((S0[(int)((L >>> 24) & 0xff)] + S1[(int)((L >>> 16) & 0xff)]) ^	     S2[(int)((L >>> 8) & 0xff)]) + S3[(int)(L & 0xff)]) ^ P[15]);    L ^= ((((S0[(int)((R >>> 24) & 0xff)] + S1[(int)((R >>> 16) & 0xff)]) ^	     S2[(int)((R >>> 8) & 0xff)]) + S3[(int)(R & 0xff)]) ^ P[16]);    R ^= P[17];    out[0] = R;    out[1] = L;  }  public synchronized void decrypt(byte[] src, int srcOff, byte[] dest, int destOff, int len) {    int[] out = new int[2];    int iv0 = IV0;    int iv1 = IV1;    int d0;    int d1;    int end = srcOff + len;    for(int si = srcOff, di = destOff; si < end; si += 8, di += 8) {      d0 = ((src[si] & 0xff) | ((src[si + 1] & 0xff) << 8) | 	    ((src[si + 2] & 0xff) << 16) | ((src[si + 3] & 0xff) << 24));      d1 = ((src[si + 4] & 0xff) | ((src[si + 5] & 0xff) << 8) | 	    ((src[si + 6] & 0xff) << 16) | ((src[si + 7] & 0xff) << 24));      decrypt(d0, d1, out);      iv0 ^= out[0];      iv1 ^= out[1];      dest[di]   = (byte)( iv0         & 0xff);      dest[di+1] = (byte)((iv0 >>> 8 ) & 0xff);      dest[di+2] = (byte)((iv0 >>> 16) & 0xff);      dest[di+3] = (byte)((iv0 >>> 24) & 0xff);      dest[di+4] = (byte)( iv1         & 0xff);      dest[di+5] = (byte)((iv1 >>> 8 ) & 0xff);      dest[di+6] = (byte)((iv1 >>> 16) & 0xff);      dest[di+7] = (byte)((iv1 >>> 24) & 0xff);      iv0 = d0;      iv1 = d1;    }    IV0 = iv0;    IV1 = iv1;  }  public int[] decrypt(int xL, int xR, int[] out) {    int L, R;    L = xL;    R = xR;    L ^= P[17];    R ^= ((((S0[(int)((L >>> 24) & 0xff)] + S1[(int)((L >>> 16) & 0xff)]) ^	     S2[(int)((L >>> 8) & 0xff)]) + S3[(int)(L & 0xff)]) ^ P[16]);    L ^= ((((S0[(int)((R >>> 24) & 0xff)] + S1[(int)((R >>> 16) & 0xff)]) ^	     S2[(int)((R >>> 8) & 0xff)]) + S3[(int)(R & 0xff)]) ^ P[15]);    R ^= ((((S0[(int)((L >>> 24) & 0xff)] + S1[(int)((L >>> 16) & 0xff)]) ^	     S2[(int)((L >>> 8) & 0xff)]) + S3[(int)(L & 0xff)]) ^ P[14]);    L ^= ((((S0[(int)((R >>> 24) & 0xff)] + S1[(int)((R >>> 16) & 0xff)]) ^	     S2[(int)((R >>> 8) & 0xff)]) + S3[(int)(R & 0xff)]) ^ P[13]);    R ^= ((((S0[(int)((L >>> 24) & 0xff)] + S1[(int)((L >>> 16) & 0xff)]) ^	     S2[(int)((L >>> 8) & 0xff)]) + S3[(int)(L & 0xff)]) ^ P[12]);    L ^= ((((S0[(int)((R >>> 24) & 0xff)] + S1[(int)((R >>> 16) & 0xff)]) ^	     S2[(int)((R >>> 8) & 0xff)]) + S3[(int)(R & 0xff)]) ^ P[11]);    R ^= ((((S0[(int)((L >>> 24) & 0xff)] + S1[(int)((L >>> 16) & 0xff)]) ^	     S2[(int)((L >>> 8) & 0xff)]) + S3[(int)(L & 0xff)]) ^ P[10]);    L ^= ((((S0[(int)((R >>> 24) & 0xff)] + S1[(int)((R >>> 16) & 0xff)]) ^	     S2[(int)((R >>> 8) & 0xff)]) + S3[(int)(R & 0xff)]) ^ P[9]);    R ^= ((((S0[(int)((L >>> 24) & 0xff)] + S1[(int)((L >>> 16) & 0xff)]) ^	     S2[(int)((L >>> 8) & 0xff)]) + S3[(int)(L & 0xff)]) ^ P[8]);    L ^= ((((S0[(int)((R >>> 24) & 0xff)] + S1[(int)((R >>> 16) & 0xff)]) ^	     S2[(int)((R >>> 8) & 0xff)]) + S3[(int)(R & 0xff)]) ^ P[7]);    R ^= ((((S0[(int)((L >>> 24) & 0xff)] + S1[(int)((L >>> 16) & 0xff)]) ^	     S2[(int)((L >>> 8) & 0xff)]) + S3[(int)(L & 0xff)]) ^ P[6]);    L ^= ((((S0[(int)((R >>> 24) & 0xff)] + S1[(int)((R >>> 16) & 0xff)]) ^	     S2[(int)((R >>> 8) & 0xff)]) + S3[(int)(R & 0xff)]) ^ P[5]);    R ^= ((((S0[(int)((L >>> 24) & 0xff)] + S1[(int)((L >>> 16) & 0xff)]) ^	     S2[(int)((L >>> 8) & 0xff)]) + S3[(int)(L & 0xff)]) ^ P[4]);    L ^= ((((S0[(int)((R >>> 24) & 0xff)] + S1[(int)((R >>> 16) & 0xff)]) ^	     S2[(int)((R >>> 8) & 0xff)]) + S3[(int)(R & 0xff)]) ^ P[3]);    R ^= ((((S0[(int)((L >>> 24) & 0xff)] + S1[(int)((L >>> 16) & 0xff)]) ^	     S2[(int)((L >>> 8) & 0xff)]) + S3[(int)(L & 0xff)]) ^ P[2]);    L ^= ((((S0[(int)((R >>> 24) & 0xff)] + S1[(int)((R >>> 16) & 0xff)]) ^	     S2[(int)((R >>> 8) & 0xff)]) + S3[(int)(R & 0xff)]) ^ P[1]);    R ^= P[0];    out[0] = R;    out[1] = L;    return out;  }/* Blowfish's P and S -boxes, respectively. These were taken   from Bruce Schneier's public-domain implementation. */  final static int[] blowfish_pbox =  {    0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344,    0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89,    0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c,    0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917,    0x9216d5d9, 0x8979fb1b  };  final static int[] blowfish_sbox =  {    0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7,    0xb8e1afed, 0x6a267e96, 0xba7c9045, 0xf12c7f99,    0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16,    0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e,    0x0d95748f, 0x728eb658, 0x718bcd58, 0x82154aee,    0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013,    0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef,    0x8e79dcb0, 0x603a180e, 0x6c9e0e8b, 0xb01e8a3e,    0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60,    0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440,    0x55ca396a, 0x2aab10b6, 0xb4cc5c34, 0x1141e8ce,    0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a,    0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e,    0xafd6ba33, 0x6c24cf5c, 0x7a325381, 0x28958677,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久蜜桃香蕉精品一区二区三区| 国产精品亚洲专一区二区三区| 亚洲国产精品嫩草影院| 亚洲第一二三四区| 免费观看久久久4p| 成人精品视频一区二区三区尤物| 9久草视频在线视频精品| 精品视频免费看| 日韩欧美在线不卡| 国产精品国产自产拍高清av| 亚洲精品日韩专区silk| 青青草精品视频| 成人免费视频视频| 欧美日韩成人一区二区| 久久综合色综合88| 亚洲女同女同女同女同女同69| 日韩影院免费视频| 国产乱码精品一区二区三| 在线免费观看一区| 亚洲精品一线二线三线无人区| 国产精品久久久久久户外露出| 亚洲精品国产精品乱码不99| 免费在线成人网| 不卡一区二区三区四区| 欧美一区二区三区日韩| 欧美国产一区视频在线观看| 亚洲福利电影网| 成人h动漫精品一区二区| 欧美精品aⅴ在线视频| 中文成人av在线| 日韩成人一级大片| 成人av网址在线观看| 欧美一区二区三区精品| 中文字幕日本不卡| 久久国产精品72免费观看| 色综合久久久久网| 国产性色一区二区| 三级精品在线观看| 91蜜桃传媒精品久久久一区二区| 日韩欧美一区中文| 亚洲国产日韩一区二区| 粉嫩一区二区三区性色av| 欧美裸体一区二区三区| 国产精品久久精品日日| 黄色小说综合网站| 欧美日韩精品一区二区在线播放| 中文字幕国产精品一区二区| 精品一区二区影视| 3d成人动漫网站| 一区二区久久久| 99久久综合精品| 久久久久综合网| 久久福利资源站| 宅男噜噜噜66一区二区66| 一区二区三区在线播放| 成人不卡免费av| 国产偷国产偷精品高清尤物| 蜜臀av性久久久久蜜臀av麻豆| 欧美日韩在线三级| 一区二区视频在线看| 成人午夜视频免费看| 久久影院视频免费| 极品瑜伽女神91| 日韩午夜av一区| 日本欧美肥老太交大片| 欧美人xxxx| 午夜精品久久一牛影视| 欧美日韩国产精品自在自线| 亚洲激情男女视频| 99国产欧美久久久精品| 国产精品乱人伦一区二区| 国产精品夜夜嗨| 国产日产欧美一区二区三区| 国产美女精品人人做人人爽| 日韩天堂在线观看| 久久99九九99精品| 欧美刺激脚交jootjob| 奇米四色…亚洲| 日韩三级在线免费观看| 蜜桃视频免费观看一区| 日韩一区二区电影| 久久99精品久久久久| 精品久久久久久久久久久久久久久久久| 日韩国产一区二| 日韩一本二本av| 国内精品视频666| 国产日产欧美一区二区视频| 成人视屏免费看| 一区二区三区欧美视频| 精品视频在线免费观看| 日本不卡高清视频| 久久色成人在线| 国产99久久久国产精品潘金网站| 中文字幕二三区不卡| 91美女片黄在线观看91美女| 亚洲美女偷拍久久| 欧美日韩精品免费观看视频| 亚洲成人精品一区| 日韩欧美一级二级三级| 激情成人综合网| 国产精品家庭影院| 欧美日韩国产美| 国内精品国产成人国产三级粉色 | 日本午夜精品一区二区三区电影| 日韩一区二区三区精品视频| 狠狠狠色丁香婷婷综合久久五月| 久久久久久夜精品精品免费| 高清成人免费视频| 一区二区三区四区激情| 欧美一区二区三区白人| 韩国精品主播一区二区在线观看| 欧美激情综合在线| 欧亚一区二区三区| 久久疯狂做爰流白浆xx| 中文在线一区二区| 欧美日韩在线播| 国产精品一二三区在线| 亚洲日本丝袜连裤袜办公室| 欧美精品乱码久久久久久 | 国产欧美在线观看一区| 色哟哟国产精品免费观看| 日本最新不卡在线| 国产精品你懂的在线欣赏| 欧美日本一道本在线视频| 国产一区欧美日韩| 伊人婷婷欧美激情| 久久影视一区二区| 一本大道久久a久久综合| 麻豆成人免费电影| 亚洲女同一区二区| 久久综合九色综合久久久精品综合| 99久久婷婷国产综合精品电影| 午夜久久电影网| 综合久久久久久| 精品国产乱码久久久久久牛牛| 一本一道久久a久久精品| 精品一区二区三区免费毛片爱 | 色妹子一区二区| 久草热8精品视频在线观看| 亚洲欧美另类小说| 2022国产精品视频| 欧美日韩1区2区| 不卡电影一区二区三区| 美女脱光内衣内裤视频久久网站| 国产精品精品国产色婷婷| 欧美本精品男人aⅴ天堂| 色天天综合色天天久久| 国产乱妇无码大片在线观看| 午夜精品久久久久久久99水蜜桃| 国产精品久久久久久亚洲伦| 欧美一区二区三区四区久久| 在线免费不卡视频| 成人午夜电影网站| 久久www免费人成看片高清| 亚洲成在人线免费| 亚洲欧美韩国综合色| 国产清纯白嫩初高生在线观看91| 欧美嫩在线观看| 欧美性做爰猛烈叫床潮| av在线一区二区| 国产99久久久精品| 国产精品一区二区果冻传媒| 蜜臀av亚洲一区中文字幕| 丝袜美腿亚洲一区| 亚洲影院在线观看| 一区视频在线播放| 欧美国产禁国产网站cc| 精品国产电影一区二区| 7777精品伊人久久久大香线蕉完整版| 色94色欧美sute亚洲13| av亚洲精华国产精华精| 国产精品一区在线观看乱码| 久久国产人妖系列| 蜜桃视频在线观看一区二区| 丝袜美腿亚洲一区| 日精品一区二区| 婷婷一区二区三区| 日日夜夜免费精品视频| 日韩极品在线观看| 日韩1区2区3区| 三级亚洲高清视频| 日韩影视精彩在线| 日av在线不卡| 午夜精品福利一区二区蜜股av| 亚洲国产视频一区二区| 亚洲一区二区三区中文字幕 | 色哟哟一区二区| 91福利国产成人精品照片| 色系网站成人免费| 在线精品视频一区二区三四| 在线欧美小视频| 欧美日韩精品三区| 日韩一区二区在线看| 日韩欧美www| 一区二区三区 在线观看视频| 亚洲精品久久久久久国产精华液| 伊人夜夜躁av伊人久久| 亚洲第四色夜色| 久色婷婷小香蕉久久| 国产在线不卡一区|