当前位置: 首页 > news >正文

建设电影网站赚钱图库素材网站模板

建设电影网站赚钱,图库素材网站模板,朋友圈网络营销,口碑好的江苏网站建设一般来说#xff0c;使用OpenSSL对称加密算法有两种方式#xff0c;一种是使用API函数的方式#xff0c;一种是使用OpenSSL提供的对称加密算法指令方式。本书将介绍对称加密算法的指令方式OpenSSL的对称加密算法指令主要用来对数据进行加密和解密处理#xff0c;输入输出的…一般来说使用OpenSSL对称加密算法有两种方式一种是使用API函数的方式一种是使用OpenSSL提供的对称加密算法指令方式。本书将介绍对称加密算法的指令方式OpenSSL的对称加密算法指令主要用来对数据进行加密和解密处理输入输出的方式主要是文件当然也可以是默认的标准输入输出设备。OpenSSL基本上为所有其支持的对称加密算法都提供了指令方式的应用这些应用指令的名字基本上都是以对称加密算法本身的名字加上位数、加密模式或其他属性组合而成。比如DES算法的CBC模式其对应的指令就是des-cbc。要查找最新版本的OpenSSL支持哪些对称加密算法指令只要在OpenSSL应用程序提示符下输入“-help”就可以看到在输出信息最后部分(Ciphercommands)有很多我们熟悉的算法名称这些就是OpenSSL支持的对称加密算法指令。OpenSSL还将所有的对称加密算法指令集成在一个指令程序中那就是enc指令。enc指令是OpenSSL中对称加密算法指令的集大成者用户可以在它的一个参数中指定使用哪种加密算法和模式从而统一了对称加密算法指令的入口。enc指令的格式跟单独一个对称加密算法指令的格式是基本一样的但是增加了一个算法类型的选择参数选项。比如下面两种形式的指令是等价的:OpenSSL的对称加密算法指令还可以增加BASE64编解码的功能也就是说可以在数据加密后将数据进行BASE64编码后输出保存然后在解密的时候先将数据进行BASE64解码后再进行解密。这样对于加密后数据的保存和处理就更加方便因为BASE64编码将加密后的很多不可见字符都编码成可见的字符了。当然如果你愿意也可以单独使用BASE64编码的功能OpenSSL为此也提供了专门的指令其使用形式跟其他对称加密算法指令是一致的。OpenSSL的对称加密算法指令还可以作为使用第三方加密库(通常是硬件加密设备)的应用接口也就是说它可以使用第三方的加密库作为完成加密操作的真正设备。这是通过OpenSSL的Engine机制实现的。当然使用第三方加密库的前提是你已经安装了第三方的加密设备并成功通过Engine机制加载到了OpenSSL中。 不过对OpenSSL的所有指令包括对称加密算法指令你不能期望过高这些指令虽然功能强大但是并没有支持所有可能的加密算法和模式只是提供了固定的部分功能。比如对称加密算法指令就不支持76位的RC2加解密或者84位的RC4加解密等功能。如果你想使用这些灵活的加密模式和算法那么就需要对OpenSSL进行进一步的深入研究即使用OpenSSL的API。对于大部分块加密对称加密算法OpenSSL都提供了CBC、CFB、ECB和OFB四种加密模式。需要注意的是对于使用两个密钥和三个密钥EDE方式的三重DES算法其ECB模式的指令名称并没有明确标出很容易跟CBC模式混同因为块加密算法使用最多的是CBC方式。 如果要单独使用BASE64编码而不进行数据的加密和解密那么只要简单地忽略算法类型参数并加上“a”或者“base64”选项就可以了当然你如果不愿意忽略算法类型也可以输入“-none”选项。下面三种形式是等价的仅使用BASE64编码的指令:从表还可以看出对于绝大部分对称加密算法来说都有enc参数式的指令和单独的指令两种方式它们都是等价的至于选择哪一种主要取决于用户本身的偏好。不过enc指令可能会更快地支持新的对称加密算法而单独的对称加密算法指令就不一定能得到及时的更新。这跟enc实现的机制是有关系的因为enc使用的是OpenSSL内部定义的对称加密算法简称作为类型输入参数只要是OpenSSL定义的对称加密算法模式enc程序都能通过接口API自动支持不需要因为增加了新的对称加密算法而进行enc应用程序的修改。  相对于其他指令来说对称加密算法的指令参数比较少使用起来也相对容易。对称 加密算法指令的参数形式如下: iphername是在表7-1中第二列和第三列中出现的参数值之一。如果你选择第一种指令形式那么就需要选择表7-1第二列的参数形式;如果你选择的是后一种独立对称加密算法指令方式那就应该使用表7-1第三列的参数形式。对于第一种对称加密算法指令使用方式来说如果你不需要进行任何加密或解密处理那么可以输入none选项替代ciphername当然你也可以简单忽略ciphername选项其效果是一样的。 (2)in和out选项 这两个选项分别用于指令输入和输出文件对于加密操作来说输入的应该是明文文件也就是要加密的文件输出的是密文文件即经过加密的文件;对于解密操作来说输入的是经过加密的文件而输出的是恢复的明文文件。输入和输出文件名本身是没有任何限制的只要符合习惯的文件名形式即可。需要注意的是一般不要试图编辑和改变加密后的文件那样做可能引起文件的部分甚至全部内容不能进行正确的解密!默认的输入和输出文件是标准输入和输出设备对于Windows来说就是指令行界面。需要注意的是如果提供的输出文件名是已经存在的文件那么程序会首先将该文件内容清空! (3)口令输入选项passk和kfile 如果你不愿意输入繁杂的用来加密数据的密钥和初始向量那么可以使用从口令中提取密钥和初始向量的方法。OpenSSL对称加密算法指令中输入口令的目的正在于此事实上OpenSSL中几乎所有输入的口令都是用作提取密钥的材料而不是直接用作加密的密钥。pass选项提供了最灵活的口令输入方式输入的源可以是标准输入设备、指令行直接输入、提示输入、文件、环境变量和文件描述符具体的格式介绍读者可以参考7-4节的应用实例。k选项和kfile选项都是为了兼容以前的版本而保留的它们的功能目前都可以使用pass选项来实现。k选项后面输入的参数是口令字符。kfile选项后面输入的参数是作为口令的文件名当然必要的时候应该也提供路径。OpenSSL的口令文件以第一行作为输入口令。 (4)e和d选项 e和d选项分别表示执行加密操作(encryption)和解密操作(decryption)两个参数是互斥的不能同时出现但是可以同时不出现这时候就执行默认的操作即执行加密操作。这两个选项都不带参数。 (5)base64a和A选项 选项a和base64的作用是相同的就是将文件进行BASE64的编解码操作。对于加密操作来说就在数据加密之后进行BASE64编码;对于解密操作来说就在解密操作之前执行BASE64解码。A选项跟a或者base64选项一起使用才能生效如果出示了A选项则程序将努力将所有加密数据作为一行进行BASE64编码而不是按照文件原有的换行格式进行BASE64编码。需要注意的是在文件比较大的时候A选项经常会导致指令执行失败。上述三个选项都不带参数。 (6)K和IV选项 如果你使用这两个选项意味着你不相信OpenSSL从口令提取加密密钥和初始向量的方法而使用自己直接提供的加密密钥和初始向量那么这时候你就不再需要使用口令选项。K选项后面的参数是加密密钥是以十六进制的方式表示长度不能超过64个字符。IV选项只有在分组加密算法的某些模式才需要其参数也是以十六进制的方式表示长度不能超过32个字符。如果输入的参数不是十六进制的字符那么程序就会报错。上述选项参数输入的长度如果不够就在后面补零替代。 (7)saltnosalt和S选项 salt选项指明在从口令提取密钥的过程中使用盐值这可以增强被加密数据的安全性事实上即便不出示此选项默认指令也会使该选项生效。nosalt选项跟salt选项相反告诉指令在密钥提取的过程中不使用盐值一般来说如果不是特别地为了跟OpenSSL一些老版本兼容不要做这样降低安全性的事情。S选项后面的输入参数是十六进制编码的真正使用的盐值其长度不能超过16个字符。所有这些选项只有跟口令输入选项一起使用才会生效如果你使用K和IV选项方式输入加入密钥那么这些选项将不会产生任何作用。 (8)engine选项 该选项的参数是OpenSSL支持的Engine的名称一般是以字符串表示比如“cswift”“nuron”和“pkcs11”等。如果你不知道目前你的OpenSSL支持的Engine特征字符串可以输入下列指令其中有效的Engine都会提示出来:OpenSSLengine -t如果你使用了有效的Engine那么你所执行的加密操作实际上都是在第三方加密设备中执行而不再是使用OpenSSL密码库的软件算法。 (9)p和P选项 p选项打印出对称加密算法真正使用的加密密钥和初始向量输出的格式是十六进制的形式。如果出示了P选项则程序在打印出加密密钥和初始向量后就立刻退出而不执行真正的加密或解密操作。 (10)nopadbufsize和debug选项 这几个选项之间其实并没有联系这里之所以放在一起只是为了节省篇幅。nopad选项指定不使用默认的PKCS#5标准的补丁方式如果这样做那么就要确保在块加密算法中输入的数据是加密块长度的整数倍比如使用DES算法就要保证输入的数据是8字节的整数倍。bufsize选项的参数指定了读写文件的I/O缓存指定的数字以字节为单位也可以在数字后面加“k”表示是以1024字节为单位。比如下面的格式都是可以被接受的:-bufsize 256 或者 -bufsize 8k如果你指定的缓存小于80字节指令程序会自动将它增加为80字节这是进行BASE64一行编码所需要的最小长度。使用debug选项后OpenSSL的对称加密算法指令会将整个执行过程中I/O操作相关的BIO列出来。这主要是为了调试目的而使用对于一般用户来说该选项很少使用。 例子 本节将给出对称加密算法指令的一些具体实例在下面的例子中“pln.txt”表示明文文件“enc.txt”表示经过加密的密文文件而“rcv.txt”表示恢复的明文文件。下面指令将文件pln.txt的内容复制到文件enc.txt中:使用的时候 需要指定文件的绝对路径 OpenSSL对称加密算法加密数据的时候需要使用密钥对于块加密算法的某些模式还需要初始向量既可以直接输入加密密钥和初始向量也可以通过口令来提取加密密钥和初始向量。就口令输入来说也有多种不同的方式本节将给出多种输入口令和密钥的例子。下面是DES算法CBC模式指令直接使用加密密钥和初始向量的例子:
http://www.zqtcl.cn/news/730173/

相关文章:

  • 网站内容创意网站开发后台php技术
  • 做下载网站用阿里云的什么产品goland 网站开发
  • 湖州网站建设策划学编程软件
  • 龙华网站建设专业定制企业外贸网店怎么开
  • 申请网站做自己的产品做头像一个字的网站
  • 外贸网站建设行业发展情况北京 企业网站开发
  • dedecms 倒计时 天数 网站首页创业众筹平台
  • 隆尧建设局网站wordpress彻底禁用google
  • 自己做网站需要什么技能比邻店网站开发
  • 网站建设杭州最便宜劳务公司找项目平台
  • jsp做网站毕业设计安徽省交通运输厅章义
  • 企业网站有哪几个类型广州做网站市场
  • 直播网站建设开发上海注册公司多少钱
  • 可以兼职做设计的网站备案期间能否做网站解析
  • 做发帖的网站代码seo联盟平台
  • 铁威马 Nas 做网站百度广告代运营
  • 有没有帮别人做网站小说关键词生成器
  • 那些开店的网站是自己做的吗装修平台排行榜前十名
  • 重庆智能网站建设价格毕业设计做系统跟做网站哪个容易
  • 淘宝美工做兼职的网站多多返利网站建设
  • 如何承接设计网站建设电商平台开发流程
  • 安康做网站简洁高端的wordpress个人博客
  • 酒店网站建设协议手机怎么做销售网站
  • 屏蔽网站接口js广告seminar
  • 谁有手机网站啊介绍一下wordpress 流量插件
  • 杭州网站公司google网站建设
  • 莱芜住房和城乡建设厅网站网站头部设计
  • 织梦响应式茶叶网站模板邯郸最新通告今天
  • 深圳公司网站改版通知做网站分类链接
  • 电子商务网站建设答案网络运营与维护