博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DES加密GUID+文件名称,关于DES加密后文件长度是否超过WINDOWS文件命名规定长度255个字节。...
阅读量:6947 次
发布时间:2019-06-27

本文共 2376 字,大约阅读时间需要 7 分钟。

首先:Windows文件名长度:

最长255字节.

我在ntfs文件系统的盘上建的文件,文件名可以包含255个汉字,这是为什么?文件名长度不是有255字节的限制吗?一个汉字不是等于2个字节吗?

winNT是使用宽字符(unicode)的,一个英文字母和一个汉字一样都是占用2字节.

windows为什么会限制文件名长度

文件系统中,文件名至少在两个地方存在,一是文件内部的文件头信息,二是磁盘内的文件分配表.

就像你填表格一样,大小是有限制的.
DOS时代文件名只支持8位,32位系统后文件名长度应该足够用了.

——————————————————

 

GUID

 

未完待续

 

续来了

我的分析:文件名为什么112位长度。

加密的数据不是块长度的整倍数的话,就需要做填充。填充可以填全零,可以填全一,也可以填随机。未满8字节(64位) 则填充为64位(一组)。若 正好满8字节(64位) 则填充为16字节(128位)。所以如果明文数据超过8个字节(64位),则除最后一组是编码为8个字节(64位),其他前面的都是满8个字节(64位)的块,编码为16字节(128位)。4位=16进制GUID 共128位(32长度 16进制)              128 位/4=32长度身份证号码18长度(作为字符串时C# char 16位)  18长度×4=72位次数:2长度 ((作为字符串时C# char 16位))   2长度×4=78位位:128+72+8=208位  原文总位数DES。分组64位一组加密。每64位原文加密成64位密文。但满64位加密成128位密文(后64位根据加密规则填充0或1),最后未满64位的填充为64位满。最后密文是64位(8字节)的整数倍。所以 208/64=3  208%64=16  有3组密文被填充为128位(16字节),有1组 被填充为64位(8字节)128×3+64=448位密文。448位 按照 16进制表示   448位/4 =112长度
在windows下面,单个文件名的长度限制是255,完整的路径长度(如E:\test\aaa.txt这样限制是260)

 

 

原理:

DES文件名长度分析。3DES的算法描述  DES作为美国国家标准研究所(American National Standard Institute,ANSI)的数 据加密算法(Data Encryption Algorithm,DEA)和ISO的DEA 1,成为一个世界范围内的 标准已经二十多年。尽管他带有过去时代的特征,但他很好地经受住了多年的密码分析 ,除了可能的最强有力的对手外,对其他的攻击具有较好的安全性。 3.1DES的描述  DES是一种分组加密算法,他以64位为分组对数据加密。64位一组的明文从算法的一端 输入,64位的密文从另一端输出。DES是一个对称算法:加密和解密用的是同一个算法(除 密钥编排不同以外)。   密钥的长度为56位(密钥通常表示为64位的数,但每个第8位都用作奇偶检验,可以忽 略)。密钥可以是任意的56位数,且可以在任意的时候改变。   DES算法的入口参数有3个:Key,Data,Mode。其中Key为8个字节共64位,是DES算法 的工作密钥;Data也为8个字节64位,是要被加密或解密的数据:Mode为DES的工作方式,有 两种:加密或解密。   DES算法的工作过程:若Mode为加密,则用Key对数据Data进行加密,生成Data的密码 形式(64位)作为DES的输出结果;若Mode为解密,则用Key对密码形式的数据Data解密,还 原为Data的明码形式(64位)作为DES的输出结果。   在通信网络的两端,双方约定了一致的Key,在通信的源点用Key对核心数据进行DES加密 ,然后以密码形式通过公共通信网(如电话网)传输到通信网络的终点,数据达到目的 地后,用同样的Key对密码数据进行解密,便再现了明码形式的核心数据。这样便保证了核 心数据(如PIN,MAC等)在公共通信网中传输的安全性和可靠性。通过定期在通信网络的源 端和目的端同时改用新的Key,便能更进一步提高数据的保密性,这正是现在金融界交易网 络的流行作法。   简单地说,算法只不过是加密的一种基本技术,DES基本组建分组是这些技术的一种组合 ,他基于密钥作用于明文,这是众所周知的轮(round)。DES有16轮,这意味着要在明文分 组上16次实施相同的组合技术。根据DES算法原理,密文长度应该为8的倍数,即小于等于8个字节的明文,加密后密文应为8字节.即DES 使用64位加密的, 不足64位的,会补上位, 然后加密首先你要明白什么是块加密算法(block cipher)。块加密就是把明文分割成一个个大小相等的块,通常是以 8 字节为倍数是 1 个单位。比如,DES 的块大小是 64 bits,也就是 8 字节。因为每个块都是固定的长度,所以如果要加密的数据不是块长度的整倍数的话,就需要做填充。填充可以填全零,可以填全一,也可以填随机,有专门的方案,在此不做介绍。如果做了填充,那么密文会比明文长几个字节,但恢复成明文时可以用一个标记把解密后的数据截断,留下数据,丢弃填充,这样数据的完整性得到了保证。•	我記得DES是以8 bytes作為單位,如果資料不是8 bytes的倍數,就會用0補齊,所以最後出來的密文會是大於等於且最接近的那個8 bytes的倍數,譬如 Data = 8 bytes --> 密文為 8 bytes,Data = 14 bytes -->密文為16 bytes...etc。密文為8位元的倍數, 你如果輸入的8位元內, 密文都是8位元, 如果是8位元的資料, 密文則為16位元

 

 

 

 

 

 

转载地址:http://syenl.baihongyu.com/

你可能感兴趣的文章
自定义显示小红点的android Button按钮
查看>>
mybatis获取当前插入记录的id
查看>>
PHP电视直播系统
查看>>
Java代理模式之JDK动态代理例子
查看>>
2015年度总结暨2016大致计划
查看>>
ubuntu12.04下网络爬虫 larbin 的安装
查看>>
JSP 服务器响应
查看>>
一步步制作rpm包
查看>>
App支付签名错误
查看>>
kali linux虚拟wifi搭建
查看>>
jquery设置元素的readonly和disabled
查看>>
监控文件是否被修改
查看>>
Linux学习笔记:Rsync
查看>>
转:APK Crack
查看>>
Beanstalkd协议 二(任务的生命周期)
查看>>
jvisualvm远程监控 visualgc插件 不受此jvm支持问题
查看>>
(1)Powershell简介
查看>>
zabbix客户端配置
查看>>
Logtail提升采集性能
查看>>
史上最失败的一次营销活动
查看>>