分離碼是一種資訊編譯碼技術,主要利用數學的不同進製轉換來形成,結合碼表和數學的進製轉換,
實現碼位分離的編譯碼方法。主要優點實現資訊的分離儲存和傳輸,不再借助於
金鑰來保證資訊的安全。
資訊保安和儲存隨著時代的發展,應用越來越廣泛。資訊編譯碼主要是以下三種實現:
1.資訊的無損編譯碼。主要有資訊的加解密,資訊的壓縮,資訊的冗餘編譯碼儲存。
2.3.
資訊的雜湊編碼。主要用於資訊的特徵標識,檔案的完整性檢測,資訊的驗證等。
資訊的無損編譯碼有分為兩種:
1.資訊非冗餘編譯碼。簡單字典轉換實現的資訊編譯碼,資訊的對稱和非對稱加密處理。
2.資訊冗餘編譯碼。主要用於資訊的儲存和資訊傳輸,提供資訊的編譯碼的糾錯處理。
資訊的處理是永恆的課題,資訊的處理離不開數學的變換。既有針對碼表(對稱、非對稱碼表)的一一對映,也有按位提取編碼的變換。
資訊編譯碼領域主要用到的數學變換包括
一一對映
,即單射;非一一對映,及多對
一、一對多和多對多的對映。一般來說資訊處理領域多考慮一對一的對映關係。這些變換僅僅針對資訊的字典(即碼表)而對資訊進行處理。
數學的進製轉換:實現不同進製之間的數學變換。擴充套件一下數學變換的形式,結合碼表和數學的不同的進製轉換,進行資訊的編譯碼就很有必要。
利用數學不同
進製之間的轉換結合變換的碼表,實現資訊編譯碼,包括:資訊的
碼表單元;資訊的
編碼單元;資訊的
解碼單元。
實現文件分解成碼表、變換序列和位數系列三個部分,或者採用預設碼表的變換序列和位數序列兩部分;本發明還實現通過碼表,變換序列和位數序列還原文件的方法。
基於上述目的本發明提供的不同進製之間轉換形成碼和位分離編譯碼的方法包括:
1.制定碼表:確定處理資訊的單元位數,確定轉換的進製,定義碼表;
2.編碼:根據要求讀取64位(或者
128位,或者其它)賦值給整數,然後根據要求轉換成相應的進製(對應的數字用碼表表示的字元表示),轉換結果記錄到變換序列,轉換後的位數記錄到位數序列,一直持續到轉換完畢,最後形成兩個部分。變換序列的字元一定是碼表的字元,位數序列主要記載轉換單元對應在變換記錄中的長度。
3.解碼:讀取位數資訊,按位數讀取相關的字元,查詢碼表變換成相應的數字,結合原有的進製定義,轉換為整數,存入到檔案中,一直到轉換完畢,得到相關的檔案。
有益效果在於:
用於資訊的多路儲存和傳輸,不再借助於金鑰來保證資訊的安全,資訊的儲存分為三個部分:進製定義和碼表、十進位製到給定進製之間的轉換結果、轉換後結果的位數。並且可以針對不同的要求,實現給定進製和碼表的資訊儲存和傳輸,用於網路之間的多路通訊和多路儲存;實現自定義進製和碼表的資訊儲存,用於特定場合的傳輸和儲存。本系統已經實現一套不同進製之間轉換形成碼和位分離編譯碼系統。
具體實施方法如下:
1.設計
碼表,碼表包括三個部分:轉換進製定義,讀取資訊基本單位,字典。預設定義為:62進製,讀取
64位,預設字典為:
0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z。
2.進製碼表:給定進製的基本字元表示。
3.十進位制碼表:0,1,2,3,4,5,6,7,8,9。
4.定製碼表:通訊雙方約定碼表。
5.轉換進製定義。對應檔案十進位制資料的轉換定義,預設為62進製轉換。
6.讀取資訊基本單位約定。
7.對應碼表。
8.字典,主要約定給定字元和數字之間的轉換。
9.預設的62進製字典:
0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z
上述字元分別對應0到
61的數,即
62進製的基本數字。
10.給定字典和轉換的進製之後,就可以開始對資訊進行編碼,編碼步驟如下:
根據要求讀取64位(或者
128位,或者其它)賦值給整數,然後根據轉換的要求轉換成相應的進製(對應的數字用碼表表示),轉換的結果記錄到變換序列,轉換後的位數記錄到位數序列,一直持續到轉換完畢,最後形成兩個檔案。
給定的是資訊的解碼過程,結合字典和碼表,通過對變換序列和位數資訊,進行資訊的解碼工作。解碼步驟如下:
從位數序列中讀取位數資訊,從變換序列中按位數讀取相關的字元,查詢碼表變換成相應的數字,結合原有的進製定義,轉換為整數,存入到檔案中,一直到轉換完畢,得到相關的檔案。
分離碼**實現
,分離碼演算法
發布。
flcode.h/*
flcode.h
模組:分離碼
功能: 分離碼是一種資訊編譯碼技術,主要利用數學的不同進製轉換來形成,結合碼表和數學的進製轉換,提出碼位分離的編譯碼方法。
email: zhangliuxue@126.com
*/#pragma once
#include "math.h"
#include "malloc.h"
#include "string.h"
#include "iostream"
#include "string"
#include "map"
#include "vector"
using namespace std;
//進製轉換結構描述:jz表示多少進製,letters表示進製的字串 ,icodetable表示字元代表的數
typedef struct jzstatus
jzstatus;
union i_c
;//初始化
void initjz(jzstatus & st)
}//獲取字串表示的整數
unsigned int getjzint(jzstatus & st,const char * cvalue, size_t il)
ivalue = i;
} p[k + 1] = '\0';
k ++;
return p;}/*
編碼: 輸入訊息,轉換為字串序列和位數序列
*/string encodejz(jzstatus & st,const char* msg,size_t len,std::vector
&iser)
if (j>0)
return std::move(outstr);}/*
解碼*/
vector
decodejz(jzstatus & st, const string &msg, const size_t& len, const std::vector
&iser) return std::move( p1); } 其中main.cpp #include "flcode.h" #include
int main() cout << endl; vector
v = decodejz(st, zxj, zxj.size(), iser); stringstream stream; for (auto &x : v) cout << stream.str() << endl; return 1; }
分離碼實現web服務中的資訊保安傳輸
https提供的安全屬於通道安全,單通道資訊保安傳輸。利用分離碼設計一種的多通道的資訊保安傳輸,無需依賴ssl實現資訊的加密,同樣可以起到安全資訊的傳輸的目的。具體方案如下 1 簡單的碼表,儲存在伺服器和使用者端 2 資訊分成兩個部分通過不同的程序或者服務傳輸 3 使用者端通過js解碼即可 4 資訊...
Nginx Tomcat 實現動靜分離
因為基於不同的協議傳輸訊息,一般的網路架構都是前端是apache 或者 nginx處理靜態請求,tomcat處理動態請求,做到動靜分離,提高了 和系統效能。以下記錄本地用nginx tomcat實現的動靜分離的主要步驟。nginx主配置檔案 配置多個server,weight越大表示訪問的機會越大 ...
Nginx動靜分離實現
nginx動靜分離實現 nginx是一種輕量級,高效能,多程序的web伺服器,非常適合作為靜態資源的伺服器使用,而動態的訪問操作可以使用穩定的apache tomcat及iis等來實現,這裡就以nginx作為 伺服器的同時,也使用其作為靜態資源的伺服器,而動態的訪問伺服器就以apache為例說明。原...