1. 程式人生 > >Kryo 進階學習:資料的壓縮與加密

Kryo 進階學習:資料的壓縮與加密

      壓縮用Kryo提供的DeflateSerializer類,然後寫入到CipherOutputStream。

Kryo kryo=new Kryo();
		kryo.setReferences(false);
		kryo.setRegistrationRequired(true);
		
		String w_str1="繁體中文,English,12345,12345,123451234512345,12345,12345,12345,12345,12345,12345,12345";		
		//
		GZipEncryptor gz=null;
		try {
			gz = new GZipEncryptor();			
		} catch (NoSuchAlgorithmException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		kryo.register(String.class, new DeflateSerializer(new StringSerializer()));
		ByteArrayOutputStream bos=new ByteArrayOutputStream();
		CipherOutputStream cos=gz.newCipherOutputStream(bos);
		Output output =  new Output(cos,1);
		kryo.writeClassAndObject(output, w_str1);
		try {
			output.flush();
			cos.close();
			bos.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}				
		byte[] out =bos.toByteArray();
out為壓縮、加密後的資料。

逆向還原:

<span style="white-space:pre">		</span>Kryo kryo1=new Kryo();
		kryo1.setRegistrationRequired(true);
		kryo1.setReferences(false);
		kryo1.register(String.class, new DeflateSerializer(new StringSerializer()));
		CipherInputStream cis=gz.newCipherInputStream(new ByteArrayInputStream(out));
		Input input=new Input(cis);		
		String w_str2=(String)kryo1.readClassAndObject(input);
		System.out.println(w_str2);



相關推薦

Kryo 學習資料壓縮加密

      壓縮用Kryo提供的DeflateSerializer類,然後寫入到CipherOutputStream。 Kryo kryo=new Kryo(); kryo.setReferenc

學習資料結構演算法之美(1-3)

第一課 基礎知識就像是一座大樓的地基,它決定了我們的技術高度。而要想快速做出點事情,前提條件一定是基礎能力過硬,“內功”要到位。 第二課 為什麼要學習資料結構和演算法(摘自網友極客時間留言) 直接好處是能夠寫出效能更優的程式碼, 演算法是一種解決問題的思路和方

Gensim教程訓練word2vecdoc2vec模型

本篇部落格是Gensim的進階教程,主要介紹用於詞向量建模的word2vec模型和用於長文字向量建模的doc2vec模型在Gensim中的實現。 Word2vec Word2vec並不是一個模型——它其實是2013年Mikolov開源的一款用於計算詞向量的工具。關於Word2vec更多的原理性的介紹,可以參見

python 學習列表解析效率和timeit模組

測試程式: import timeit lst = [] def test_xrange(n): global lst lst = [] for i in xrange(n): lst.append(1) assert len(lst) == n def

GTK學習改變控制元件字型大小

改變控制元件字型大小: #include <gtk/gtk.h> /* 功能: 設定控制元件字型大小 * widget: 需要改變字型的控制元件 * size:

GTK學習設定視窗背景圖(可指定其大小)

設定視窗背景圖(可指定其大小): #include <gtk/gtk.h> /* 功能: 設定背景圖 * widget: 主視窗 * w, h: 圖片的大小 * path:

GTK學習滑鼠事件

滑鼠事件,可以理解為操作滑鼠的動作。對於視窗而言,使用者操作滑鼠,視窗檢測到滑鼠的操作( 產生一個訊號 ),然後去做相應處理( 呼叫其規定的回撥函式 ),即可認為是滑鼠事件,還是訊號與回撥函式的知識點

Python學習之旅—面向對象知識類的命名空間,類的組合繼承

ati error role ont 之前 obj say 報錯 抽象 前言   上篇博客筆者帶領大家初步梳理了Python面向對象的基礎知識,本篇博客將專註於解決三個知識點:類的命名空間,類的組合以及面向對象的三大特性之一繼承,一起跟隨筆者老看看今天的內容吧。 1.

Java學習第二十四天(Spring框架事務管理、SpringHibernate整合)

一、事務控制 1、引入 使用者訪問 > Action > Service > Dao 如何保證: 在service中呼叫2次dao,其中一個dao執行失敗,整個操作要回滾 2、事務控制概述 ① 程式設計式事務控制:自己手動控制事務 Jdbc程式

Java學習筆記——排序算法之排序(堆排序分治並歸排序)

進行 技術分享 ring http 沒有 oid 有序 重復 調整 春蠶到死絲方盡,蠟炬成灰淚始幹               ——無題 這裏介紹兩個比較難的算法: 1、堆排序 2、分治並歸排序 先說堆。 這裏請大家先自行了解完全二叉樹的數據結構。 堆是完全二叉樹。

MYSQL學習筆記三MySQL流程控制語句!(視頻序號_7-10)

sls @age 分享 流程 null set oop 默認 soft 知識點四:MySQL流程控制語句(7-10) 選擇語句:   (IF ELSE ELSE IF CASE 分支)IFNULL函數 IF語法: 語法規則:

MYSQL學習筆記十八MySQL備份和還原!(視頻序號_37)

back 系統 結構 生產 下載地址 family 需要 絕對路徑 isa 知識點十九:MySQL的備份的還原(38)   一、mysql的備份       1、通過使用mysqldump的命令備份         使用mysqldump命令備份,mysqldump命令將數

資料(十五)Hadoop資料壓縮壓縮/解壓縮例項

一、資料壓縮 1.概論         壓縮技術能夠有效減少低層儲存系統(HDFS)讀寫位元組。壓縮提高了網路頻寬和磁碟空間的效率。在Hadoop下,尤其是資料規模很大和工作負載密集的情況下。使用資料壓縮閒的非常重要。在這種情況下,I/O操作

Java學習第十三天(檔案上傳下載、JavaMail郵件開發)

一、檔案上傳與下載 1、檔案上傳 案例:登錄檔單/儲存商品等相關模組! 頭像 / 商品圖片(資料庫:儲存圖片路徑 / 圖片儲存到伺服器中指定的目錄) 2、檔案上傳要點 ① 表單提交方式:post ② 表單中有檔案上傳的表單項: <input type=”file” />

Java入門學習資料和專案實戰資源

比較好的Java入門資源,逐個知識點選破 比較好的Java入門資源 連結 JAVA 自學網站 http://how2j.cn?p=48616 JAVA 練習題 http://how2j.

android3step4Android 拓展學習——Gif介紹

GIF是什麼 GIF(圖形交換格式)的原義是“影象互換格式”,是CompuServe公司公司在1987年開發的影象檔案格式。 GIF檔案的資料,是一種基於LZW演算法的連續色調的無失真壓縮格式。其壓縮率一般在50%左右,它不屬於任何應用程式。 跨平臺 GIF的特點

深入學習Gremlin(8)資料分組去重

第8期 Gremlin Steps: group()、groupCount()、dedup()、by() 本系列文章的Gremlin示例均在HugeGraph圖資料庫上執行,環境搭建可參考準備Gremlin執行環境,本文示例均以其中的“TinkerPop關係圖”

Java學習第二十三天(Spring框架代理模式、AOP程式設計、jdbc支援)

一、共性問題 1、伺服器啟動報錯,什麼原因? ① jar包缺少或者jar包衝突 ◆ 先檢查專案中是否缺少jar包引用 ◆ 伺服器:檢查jar包有沒有釋出到伺服器下;使用者庫jar包,需要手動釋出到tomcat(每次新建專案) ◆ 重新發布專案 ② 配置檔案錯誤(

柏忠言蕙蘭瑜伽學習體系 | 生命的最高祕密,只能通過愛的贈禮來收穫!

柏忠言 大家好!今天我們要向大家介紹蕙蘭瑜伽進階學習體系。通過這些課程,您將在張蕙蘭老師和她的導師——瑜伽冥想宗師柏忠言的指導下,逐步深入地學習,將既古老又實用、廣博又深邃的瑜伽智慧運用在您的生活中! 雖然這一系列進階課程是面向已經參加過蕙蘭瑜伽基礎修習活動(即陽光生活之旅/陽光生活週末

android4step2Android音視訊處理——音視訊錄製播放

錄音 MediaRecoder Android有一個內建的麥克風,通過它可以捕獲音訊和儲存,或在手機進行播放。 有很多方法可以做到這一點,但最常見的方法是通 過MediaRecorder類。 MediaRecoder常用方法 方法名 描述