亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

128進制加密數據示例分享

2019-11-26 15:35:56
字體:
來源:轉載
供稿:網友

128進制加密數據,可以自定符號表,使用自己喜歡的符號做加密

復制代碼 代碼如下:

package com.wmly.enc;

import java.util.HashMap;

/**
 * 128進制加解密, 一個符號可表示7個bit
 * 可以自定義符號表, 符號不能重復
 */
public class MyBASE128 {

 public static final char[] symbolTable = new char[128];
 public static final HashMap<Character, Integer> indexTable = new HashMap<>(128);
 static {
  int i = 0;
  for (int j = 0; j < 128; j++) {
//   symbolTable[j] = (char) j;
   if('A' <= j && j <= 'Z'
    || 'a' <= j && j <= 'z'
    || '0' <= j && j <= '9') {
    symbolTable[i++] = (char) j;
   }
  }
  for (char c : "這是中國人寫地[備思要愛發]編解碼程序&擁有獨特的自定義符號表|不過布能使用重復字,汗啊(還差一十二個知*.#)。為我們加油吧,親!".toCharArray()) {
   symbolTable[i++] = c;
  }

  checkTable();

  for (int j = 0; j < 128; j++) {
   indexTable.put(symbolTable[j], j);
  }
 }

 private static void checkTable() throws Error {
  if(symbolTable[127] == 0) {
   throw new Error("符號表長度不正確!");
  }
  for (char a : symbolTable) {
   int count = 0;
   for (char b : symbolTable) {
    if(a == b) {
     count++;
    }
   }
   if(count > 2) {
    throw new Error("符號表有重復符號!");
   }
  }
 }

 public String encode(byte[] data) {
  if(data == null || data.length == 0) {
   return new String();
  }
  StringBuilder result = new StringBuilder();
  int tail = 0;
  for (int i = 0; i < data.length; i++) {
   int mov = (i % 7 + 1);
   int curr = 0xFF & data[i];
   int code = tail + (curr >> mov);
   result.append(symbolTable[code]);
   tail = (0xFF & (curr << (8 - mov))) >> 1;
   if(mov == 7) {
    result.append(symbolTable[tail]);
    tail = 0;
   }
  }
  result.append(symbolTable[tail]);
  return result.toString();
 }

 public byte[] decode(String base128) {
  if(base128 == null || base128.length() == 0) {
   return new byte[] { };
  }
  int length = (int) Math.floor(base128.length() * 0.875);
  byte[] result = new byte[length];
  int idx = 0;
  int head = indexTable.get(base128.charAt(0)) << 1;
  for (int i = 1; i < base128.length();) {
   int mod = i % 8;
   int code = indexTable.get(base128.charAt(i++));
   result[idx++] = (byte) (0xFF & (head + (code >> (7 - mod))));
   if(mod == 7) {
    head = 0xFF & (indexTable.get(base128.charAt(i++)) << 1);
   } else {
    head = 0xFF & (code << (mod + 1));
   }
  }
  return result;
 }

 ///////////////////////測試方法///////////////////////////////
 public static void main(String[] args) {
  MyBASE128 base128 = new MyBASE128();
  test(base128);

  String txt = "這是我的加解密測試";
  String enc = base128.encode(txt.getBytes());
  System.out.println(enc);
  System.out.println("----------------");
  System.out.println(new String(base128.decode(enc)));
 }

 private static void test(MyBASE128 base128) {
  for (int i = 0; i < 10000; i++) {
   String r = randomData();
   String d = new String(base128.decode(base128.encode(r.getBytes())));
   if(!r.equals(d)) {
//    d = new String(base128.decode(base128.encode(r.getBytes())));
    System.out.println("加解密失??!: " + r);
   }
  }
 }

 private static String randomData() {
  String textString = "了咖啡機累啊戴假發/n/r哦-";
  int start = random(0, textString.length() - 3);
  int end = random(start + 1, textString.length() - 1);
  return textString.substring(start, end);
 }

 private static int random(int i, int j) {
  return (int) Math.ceil(Math.random()*(j-i)+i);
 }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
美女视频黄免费的亚洲男人天堂| 国产精品久久久久久久久影视| 一区二区欧美日韩视频| 色狠狠久久aa北条麻妃| 亚洲国语精品自产拍在线观看| 91极品视频在线| 国产成人亚洲综合91| 亚洲老头同性xxxxx| 日韩精品在线视频观看| 成人欧美一区二区三区黑人| 宅男66日本亚洲欧美视频| 一区二区三区四区精品| 亚洲国产精品高清久久久| 96sao精品视频在线观看| 97碰碰碰免费色视频| 午夜精品一区二区三区av| 欧美激情精品久久久久久免费印度| 插插插亚洲综合网| 亚洲女人被黑人巨大进入| 日韩国产精品亚洲а∨天堂免| 国产精品精品国产| 亚洲欧洲视频在线| 日韩在线国产精品| 在线播放国产一区中文字幕剧情欧美| 91tv亚洲精品香蕉国产一区7ujn| 国产福利视频一区二区| 国产精品观看在线亚洲人成网| 亚洲欧美另类自拍| 日韩av网址在线| 国产精品日韩在线播放| 亚洲精品一区二区三区不| 亚洲四色影视在线观看| 性欧美激情精品| 国产精品678| 91人成网站www| 日韩成人av在线播放| 欧美成人黑人xx视频免费观看| 亚洲热线99精品视频| 乱亲女秽乱长久久久| 国产一区二区三区精品久久久| 欧美夫妻性生活xx| 91av视频在线播放| 日韩欧美亚洲国产一区| 国产综合久久久久久| 97视频免费观看| 性亚洲最疯狂xxxx高清| 欧美日韩成人精品| 欧美性受xxx| 国产精品偷伦视频免费观看国产| 久久久久久69| 日韩高清有码在线| 一本色道久久综合狠狠躁篇的优点| 日韩电影网在线| 麻豆一区二区在线观看| 亚洲电影在线看| 亚洲欧美精品中文字幕在线| 亚洲日韩第一页| 国产成人精品电影| 欧美天天综合色影久久精品| 国产精品久久国产精品99gif| 亚洲第一区中文字幕| 成人黄色免费在线观看| 韩国一区二区电影| 成人观看高清在线观看免费| 欧美视频中文在线看| 欧美成人激情图片网| 国产亚洲精品久久久久动| 96pao国产成视频永久免费| 国产精品入口免费视频一| 欧美黄色免费网站| 97精品国产97久久久久久春色| 国产成人精品优优av| 国产精品91久久久久久| 国产精品男女猛烈高潮激情| 亚洲摸下面视频| 久久久国产视频| 欧美一级大片在线免费观看| 国产欧美日韩精品专区| 久久婷婷国产麻豆91天堂| 黑人巨大精品欧美一区二区一视频| 中文字幕亚洲专区| 亚洲精品第一国产综合精品| 热re99久久精品国产66热| 九九热这里只有在线精品视| 26uuu另类亚洲欧美日本老年| 自拍偷拍免费精品| 欧美另类高清videos| 亚洲精品久久久久中文字幕二区| 亚洲aaa激情| 亚洲美女在线看| 国产成人精品久久二区二区| 免费av在线一区| 国产精品第七十二页| 91精品国产自产在线老师啪| 亚洲人成亚洲人成在线观看| 热久久美女精品天天吊色| 最近2019中文免费高清视频观看www99| 亚洲国产一区二区三区在线观看| 日韩av免费在线看| 久久中文久久字幕| 中文字幕精品国产| 欧洲s码亚洲m码精品一区| 欧美视频一区二区三区…| 欧美日韩国产999| 日韩在线视频网| 91精品国产九九九久久久亚洲| 国产成人综合亚洲| 欧美激情亚洲精品| 欧美性猛交99久久久久99按摩| 国产精品主播视频| 久久成人精品电影| 国产精品久久久久久影视| 成人有码在线视频| 亚洲精品网址在线观看| 欧美国产视频一区二区| 亚洲精品日韩丝袜精品| 久久久精品免费视频| 久久男人资源视频| 欧美夫妻性生活xx| 久久精品免费播放| 久国内精品在线| 91久久精品国产91久久性色| 中文字幕欧美专区| 欧美疯狂性受xxxxx另类| 国产日韩精品视频| 国产在线视频不卡| 91精品免费看| 97色伦亚洲国产| 欧美性极品少妇精品网站| 亚洲欧美精品suv| 久久91亚洲精品中文字幕| 欧美亚洲国产视频小说| 亚洲欧洲xxxx| 91色视频在线导航| 亚洲精品日韩激情在线电影| 亚洲精品在线不卡| 国产区精品在线观看| 色综合老司机第九色激情| 欧美在线一级va免费观看| 久久久久久网站| 国产精品男人爽免费视频1| 一本大道久久加勒比香蕉| 欧美日韩一区二区在线| 最近中文字幕日韩精品| 亚洲人av在线影院| 疯狂做受xxxx高潮欧美日本| 亚洲精品第一页| 色噜噜国产精品视频一区二区| 91免费电影网站| 91黑丝在线观看| 国产在线98福利播放视频| 欧美日韩激情视频| 96精品视频在线| 久久九九有精品国产23| 欧美电影在线观看高清| 亚洲精品短视频| 亚洲丁香久久久| 欧美一区二区色| 亚洲欧美国产精品久久久久久久| 国产午夜精品全部视频播放| 亚洲综合日韩中文字幕v在线| 久久久久成人网| 97久久精品人人澡人人爽缅北| 人人爽久久涩噜噜噜网站|