安企神电脑监控软件 在线试用
扫码咨询客服
安企神电脑监控软件、局域网监控软件
首页
功能对比
下载中心
购买咨询
客户列表
关于安企神

一种Xml数据文件压缩加密算法

更新时间:2022-10-28 15:44:24


本文简介:在数据交换过程中,实现交换数据文件的压缩、文件加密是提高传输效率、加强信息传输安全的重要手段,我们在研究构建企业信息交换体系基础上,针对xml数据文件,提出了一种混合压缩加密算法,有效提高了数据交换的效率。一、压缩加密方法的分析本文采用如下3个方法的组合加密,LZW数据压缩方法;换位法;序列加密法。1、LZW数据压缩方法LZW数据压缩方法对原文进行编码,产生的压缩文本保留的是码本的序号。由于这些序

一种Xml数据文件压缩加密算法

在数据交换过程中,实现交换数据文件的压缩、文件加密是提高传输效率、加强信息传输安全的重要手段,我们在研究构建企业信息交换体系基础上,针对xml数据文件,提出了一种混合压缩加密算法,有效提高了数据交换的效率。

一、压缩加密方法的分析

本文采用如下3个方法的组合加密,LZW数据压缩方法;换位法;序列加密法。

1、LZW数据压缩方法

LZW数据压缩方法对原文进行编码,产生的压缩文本保留的是码本的序号。由于这些序号没有自然语言的上下文关系,离开LZW算法破译者不可能直接从保存的码本序号中凑出原文。LZW方法的一个巧妙之处是并不保留码本本身,解压缩时码本和原文从压缩文本中递推出来。一旦压缩文本中有哪怕一个字节的错误,都无法还原原文。利用LZW数据压缩方法的加密是通过密钥修改码本编码规则。没有密钥,即使通过LZW算法也不能恢复原文。另外,我们根据本应用的特点,对LZW算法做了改进。如果破译者不知道修改后LZW算法的细节,也无法用密文还原出原文。

2、换位法

这是一个经典的加密方法。根据应用特点,考虑到信道的数据传输效率,压缩加密后的数据是数字串。我们用换位法,把密文中的多个数字对对换。置换表通过密钥生成。换位法不依赖
于上下文关系,也与数据内容无关。复合换位法的目的是进一步把LZW生成的码本序号搞乱,增加破译者凑出原文的难度。

3、序列加密法

序列加密法的基本思想是依据原文和密钥生成一个和原文长度相同的随机序列,然后随机序列和原文通过某些运行产生密文。随机序列的产生方法有:线性反馈移位寄存器、线性同余产生器、非线性随机数产生器、裁剪随机数产生器、利用数学方法的随机数产生器。我们采用线性反馈移位寄存器(LinearFee(11,ack ShiIL Regisler,L14SR)方法,其考虑是计算量小。

复合如上三种加密方法的核心是隐藏LZW压缩方法产生的码本序号。整个加密过程的关键点是:根据应用特点对LZW的修改方法、根据密钥对LZW编码的修改方法、由密钥生成置换表的方法、数据分段长度n的大小、生成山、SR输入的方法、确定山、SR初值的方法、伪随机序列与原文的运算方法。只要破译者不知道这些细节,无法恢复原文对应的码本序号,破译几乎
是不可能的。

二、压缩加密方法的实现

1、总体设计

常用压缩算法有LZW、和llutfrnan方法。lluffrnan方法需要事先统计文本中字符串的频率,根据字符串的频率再编码、压缩。找出文本中多次重复的字符串本身是一个非常复杂的问题,
所以,lluffmarri方法中,编码的字符串较短,而且压缩后的数据一般是二进制的。LZW方法的巧妙之处在于在压缩过程中找出多次重复的串,而且码表并不需要保存到压缩后的数据中。一般来说,LZW方法比lluffrnan方法更灵活,压缩比也更小。我们的应用中对压缩的一个特别要求是压缩后是阿拉伯数字串。如果用阿拉伯数字串表示lluffman方法中的编码,则码串会比原串更长,压缩后的数据比原数据更大。

权衡各种利弊,我们认为选择LZW方法更合适。LZW方法有一个难以克服的缺点,要对一个特定的字符串编码,需要这个字符串出现的最小次数和串的长度成正比。例如,要对“军需物资油料部”实现编码,则至少应出现12次,在数据中前1 1次出现的这个字符串编码效率都不高。这个词在出现12次后,由于有了这个词的编码,以后的出现仅用一个码表示,和原串相比小了很多。所以说,LZW方法对大的文件压缩效果特别明显。我们需要压缩的数据是xrnl文件,而且一般较小,一些重复出现的字符串其重复次数也不是很多。因此直接用LZW方法效果并不理想。

为此,我们首先根据xml文件的特点,对xrnl文件进行预处理,然后对预处理生成的文件再用LZW方法压缩。根据xml文件的格式,可以大大简化重复串的查找。找出这些重复串后剔除位置冗余已经明显减小了文件的长度,再结合LZW方法,其压缩效果非常明显。由于压缩后的数据必须是阿拉伯数字串,对某些非常小的xrnl文件压缩效果一般。

2、xml文件的预处理算法

在xml文件中,域的标示、域的内容有些重复。由于在系统的应用中,xml文件都较小,重复次数也不是很多,仅依靠LZW算法对这些重复词编码效率低。xml预处理过程如下:

第一步:提取域的标示、域的内容,形成一个标示列表和一个内容列表,列表中项的序号用ASCU码表示,而非数字。例如“<aaa>xxx</aaa>”中,很容易找出标示“aaa”和内容“xxx”;

第二步:以在标示、内容列表中的序号替换文件中的域标示和域内容,同时只保留一个尖括号。例如:标示“<aaa>”变为“<12”,而与其配对的标示“也aa>”变为“>12”。其中“12”是标示在列表中的序号;

第三步:生成处理后的文件。文件的前面是标示列表、和内容列表,后面是替换后的xml文件体。

类C.XmLProcess用于完成xml的预处理,有两个输出函数:

BOOLSimplifyXmlStr(char*cXmlStr)

BOOLCXmlProcess::RecoverXmlStr(char*cXmlStr)

分别用于预处理、还原xml文件。

3、压缩算法的实现

为了便于传输,要求压缩后的数据是0~9的数字。LZW算法生成的压缩数据其实是压缩过程中数据对应的码本序号。把这些码本的序号用0~9数字表示,即可使输出的数据全是数字。这样做的不利是增加数据的冗余度,使输出数据的长度至少增加一倍。为了进一步减小输出数据的长度,对使用频率高的码本用短的序号表示。例如,经LZW压缩后生成2000个码本,则每个码本序号需要用4位数字表示。但是从2001~9999间的序号是没有用的,而全用三位数字表示码本序号又不够用。一个折衷办法是,在0~2000个码本之间找一个区间(简称半码区间),这个区间内的码本序号用两位数字(简称半码)表示。自然找那些出现频率高的码本区间。这个区间的起始位置和长度必须保存在输出数据中。如果选择的区间多,保存的区间起始位置、长度数据也多。这对于较小的数据文件来说并不划算。所以只设定一个区间,其长度由其码本数决定。过程如下:

第一步:用标准LZW算法生成数据的码序列。设码本数为n;

第二步:计算半码区间的最大长度l(其值的大小依赖于n);

第三步:计算半码区间的最佳起始位置s,使区间内码本出现频率之和最大;

第四步:在输出文件中保存码本序号位数、n、l、s,以及输入内容的码序列;

第五步:计算C.RC校验码并保存到输出数据中。

4、部分算法代码实现

类CDgtLzw用于完成处理后的xml数据的压缩,有两个输出函数:

BOOLCompress(unsignedchar*cStr)

BOOLDeCompress(unsignedchar*cStr)

分别用于压缩和解压缩。

有几个非输出函数,其中函数Compress(unsignedchar*cStr)用于完成标准的LZW压缩算法,其过程如下:

BOOLCDgtLzw::Compress(unsignedchar*cStr)

{

inti,iCodeIdx;

//初始化,码本数置零

m_iOutputCodeNum=0;

m_iOutputStrLen=0;

m_iCodeTableLen=c_sCodeRootLen;

//初始化,生成符号表,也作为初始的码本

for(i=0;i<c_sCodeRootLen;i++)

{

m_CodeTable[i].iOutputTimes=0;

m_CodeTable[i].sCodeLen=1;

m_CodeTable[i].iCodePos=i;

}

intiStrLen=strlen((char*)cStr);

CODETABLECurCode;

CurCode.iCodeL=c_UselessUInt;

CurCode.ucCodeR=cStr[0];

i=1;

while(1)

{

iCodeIdx=GetCodeIndex(&CurCode);

if(iCodeIdx>=0)

{

//新加入的数据和前面的数据构成一个已经存在的码本

if(i>=iStrLen)

{

//当前字节是输入数据的最后一个,LZW结束

//outputthelastindexReSizeOutputCodeIndexBuf(m_iOutputCode-Num+1);

m_iOutputCodeIndexBuf[m_iOutputCode-Num++]=iCodeIdx;

//m_CodeTable[iCodeIdx].iOutputTimes+=1;

break;

}

i++;

}

else

{

//出现一个新的码本

//addtocodetableReSizeCodeTable(m_iCodeTableLen+1);

m_CodeTable[m_iCodeTableLen]=CurCode;

//更新当前码本

m_CodeTable[m_iCodeTableLen].iOutputTimes=0;

m_iCodeTableLen++;

//outputtheindexReSizeOutputCodeIndexBuf(m_iOutputCodeNum+1);

//保存当前码本序号

m_iOutputCodeIndexBuf[m_iOutputCodeNum++]=CurCode.iCodeL;

m_CodeTable[CurCode.iCodeL].iOutputTimes+=1;

//[.c.]=kCurCode.iCodeL=c_UselessUInt;

//CurCode.ucCodeR=CurCode.ucCodeR;

}

}

//m_iMaxAppearedCode=m_iCodeTableLen-1;

while(m_CodeTable[m_iMaxAppearedCode].iOutputTimes<=0)

{

m_iMaxAppearedCode--;

//后面的码没有出现在输出数据中

if(m_iMaxAppearedCode<=0)break;

}

m_iMinAppearedCode=0;

while(m_CodeTable[m_iMinAppearedCode].iOutputTimes<=0)

{

m_iMinAppearedCode++;

//前面的码没有出现在输出数据中

if(m_iMinAppearedCode>=m_iMaxAppearedCode)break;

}

//计算用数字0~9表示的码本序号的长度

m_iOutputStrLen=0;

ReSizeOutputStrBuf(m_sCodeIndexStrLen*m_iOutputCode-Num+50);

//输出码转换成数字文本ConvertCodeFromBinToDigit();

//ConvertCodeFromBinToDigitDirect();

//加密变换

CipherTransform(NULL);

returnTRUE;

}

小知识之LZW

LZW就是通过建立一个字符串表,用较短的代码来表示较长的字符串来实现压缩。 LZW压缩算法是Unisys的专利,有效期到2003年,所以对它的使用是有限制的。

立即下载试用

数据防泄密软件都有哪些?五款热门防泄密软件推荐

数据防泄密软件都有哪些?五款热门防泄密软件推荐

数据防泄密已成为企业安全的重要一环。为了确保企业数据的安全与保密,市面上涌现出了众多防泄密软件。本文将为您推荐五款热门的数据防泄密软件的功能,帮助您更好地了解并选择适合企业需求的软件。

数据防泄密软件都有哪些?五款热门防泄密软件推荐

一、安企神软件

这是一款功能强大的数据防泄密软件,具备实时监控、屏幕录像、文件加密等多项功能。通过实时监控员工的电脑使用行为,软件能够确保企业数据不被滥用。屏幕录像功能为事后审计提供了有力证据。软件还支持文件加密,有效保护企业的知识产权。定制化服务使得软件能够根据企业的实际需求进行功能定制和配置调整,满足企业的个性化需求。

功能介绍:

  • 数据监控: 实时监控企业数据的流动和使用情况,及时发现异常行为。
  • 数据加密: 采用先进的加密算法,保障数据在传输和存储过程中的安全性。
  • 权限管理: 精细化的权限控制,确保只有授权人员可以访问敏感信息。
  • 审计日志: 记录所有数据访问和操作,便于追溯和分析。

功能优势介绍: 软件具有强大的实时监控和智能预警功能,能够及时发现并阻止数据泄露风险,为企业提供全方位的数据安全保障。

数据防泄密软件都有哪些?五款热门防泄密软件推荐

二、域智盾软件

它是一款专注于企业内网监控的防泄密工具。它具备全面监控、高效稳定、易于使用等特点。通过全面监控内网的运行情况,软件能够及时发现潜在的安全风险。实时报警功能使得管理员能够迅速应对安全事件,降低安全风险。智能分析功能则帮助管理员了解内网的运行状况,预测可能出现的风险,制定相应的防范措施。

功能介绍:

  • 域控监控: 集成于域控服务器,实时监控用户在域内的数据访问和操作。
  • 敏感识别: 智能识别和分类敏感数据,提供针对性的防护措施。
  • 策略管理: 灵活的策略配置,根据企业需求进行定制化设置。
  • 报表分析: 生成详尽的报表和分析结果,帮助企业了解数据使用情况。

功能优势介绍: 软件具有与域控深度集成的优势,能够在保障数据安全的同时保持对企业内部网络的高效管理。

数据防泄密软件都有哪些?五款热门防泄密软件推荐

三、中科安企软件

中科安企软件是一款集电脑监控、应用程序监控、键盘记录和屏幕监控于一体的防泄密软件。它主要针对金融、政府、能源等领域的大型企业和机构。中科安企软件能够帮助企业实现对员工的全面监控和管理,确保企业数据的安全与保密。

功能介绍:

  • 数据分类: 对企业数据进行分类管理,根据不同级别设置不同的安全策略。
  • 行为分析: 通过行为分析技术,识别和阻止潜在的数据泄露行为。
  • 安全备份: 定期备份关键数据,确保在意外情况下能够快速恢复。
  • 安全培训: 提供员工数据安全培训,增强员工的安全意识。

功能优势介绍: 中科安企软件拥有丰富的安全功能和灵活的管理控制,能够帮助企业建立起完善的数据安全防护体系。

数据防泄密软件都有哪些?五款热门防泄密软件推荐

四、网管家软件

网管家企业电脑监控管理软件在数据防泄密方面也有着不俗的表现。它支持远程解决电脑故障,大大节省了IT维护成本。软件还提供强大的审计功能,能够生成详细的员工行为报告,帮助企业进行事后分析和追溯。网管家软件还具有兼容性强、性价比高等优势,适用于各种场景和规模的企业。

功能介绍:

  • 数据防泄密: 实时监控和管理企业数据的使用和流动,保障数据安全。
  • 网络监控: 监控企业网络流量和设备状态,及时发现网络威胁。
  • 安全防护: 提供防火墙、入侵检测等多种安全防护功能,确保网络安全。

功能优势介绍: 网管家软件综合了多种网络安全功能,为企业提供了一站式的安全解决方案,有效应对各种安全威胁。

数据防泄密软件都有哪些?五款热门防泄密软件推荐

五、文控堡垒系统

文控堡垒系统是一款专业的文件加密软件,旨在保护企业的核心机密。它支持多种加密方式,能够强制对计算机生成的文档、图纸、代码等数据自动加密。未经公司授权同意,任何方式私自带离公司的数据都会表现为乱码或无法打开及使用。软件还具备全生命周期、全流程的严格保护,确保文档在传递、保存、备份等过程中不脱密。文控堡垒系统为企业提供了全面的文件加密解决方案,有效防止数据泄露风险。

功能介绍:

  • 数据隔离: 对不同级别的数据进行隔离管理,确保敏感信息不被未授权人员访问。
  • 访问控制: 严格控制用户对数据的访问权限,实现精细化的权限管理。
  • 审计追踪: 记录所有数据访问和操作,方便审计和追踪。
  • 合规管理: 支持多种合规标准,帮助企业满足法规要求。

功能优势介绍: 文控堡垒系统注重企业内部管理和合规需求,提供了全面的数据安全解决方案,为企业提供了可靠的数据保护保障。

数据防泄密软件都有哪些?五款热门防泄密软件推荐

综上所述,这五款防泄密软件各具特色,功能强大且优势明显。无论是实时监控、屏幕录像还是文件加密等功能,都能有效保护企业的数据安全与保密。在选择软件时,企业可根据自身需求、预算和规模进行综合考虑,选择最适合自己的防泄密软件。


本文为收集整理,文章部分观点不代表本站观点,如有侵权或其它问题请反馈客服。https://www.wgj7.com/cjwt/16335.html