草庐IT

DES-ECB-PKCS

全部标签

(应用密码学)DES实验报告

1 DES1.1实验目的实验目的是理解和掌握DES密码的加密解密的过程和算法,对加密解密的运行过程有了解,提高程序设计能力。1.2实验要求实验要求是编写DES密码的加解密程序,运行并验证。1.3实验原理1.3.1 DES的基本结构DES是一种对称密码,加密和解密用的都是同一个密钥,有效密钥长度为56位。DES是一个分组密码算法,分组长度为64位,即对数据进行加解密的单位是64位,明文和密文的长度相同。由于加密解密用的是同一算法,所以有利于硬件和软件上的实现。注意上面说的56位是有效密钥长度,事实上我们用的是64位密钥,但是第8,16,24,32,40,56和64位是奇偶校验位。1.3.2 DE

java - AES/CBC 和 AES/ECB 加密后的数据大小

我想知道AES加密后的数据大小,这样我就可以避免缓冲我的AES后数据(在磁盘或内存上)主要是为了知道大小。我使用128位AES和javax.crypto.Cipher和javax.crypto.CipherInputStream进行加密。对不同输入大小进行的一些测试表明,如下计算的后加密大小是正确的:longsize=input_Size_In_Bytes;longpost_AES_Size=size+(16-(size%16));但我不确定上述公式是否适用于所有可能的输入大小。有没有办法在应用AES加密后计算数据大小-无需缓冲加密数据(在磁盘或内存上)以了解其加密后大小?

java - AES/CBC 和 AES/ECB 加密后的数据大小

我想知道AES加密后的数据大小,这样我就可以避免缓冲我的AES后数据(在磁盘或内存上)主要是为了知道大小。我使用128位AES和javax.crypto.Cipher和javax.crypto.CipherInputStream进行加密。对不同输入大小进行的一些测试表明,如下计算的后加密大小是正确的:longsize=input_Size_In_Bytes;longpost_AES_Size=size+(16-(size%16));但我不确定上述公式是否适用于所有可能的输入大小。有没有办法在应用AES加密后计算数据大小-无需缓冲加密数据(在磁盘或内存上)以了解其加密后大小?

java - 如何在 Java 中使用 3DES 加密/解密?

我编写的每个使用3DES在Java中对字符串进行编码的方法都无法解密回原始字符串。有没有人有一个简单的代码片段,可以将字符串编码然后解码回原始字符串?我知道我在这段代码的某个地方犯了一个非常愚蠢的错误。到目前为止,这是我一直在使用的:**注意,我没有从encrypt方法返回BASE64文本,也没有在解密方法中进行base64未编码,因为我试图查看我是否在拼图的BASE64部分中犯了错误.publicclassTripleDESTest{publicstaticvoidmain(String[]args){Stringtext="kyleboon";byte[]codedtext=new

java - 如何在 Java 中使用 3DES 加密/解密?

我编写的每个使用3DES在Java中对字符串进行编码的方法都无法解密回原始字符串。有没有人有一个简单的代码片段,可以将字符串编码然后解码回原始字符串?我知道我在这段代码的某个地方犯了一个非常愚蠢的错误。到目前为止,这是我一直在使用的:**注意,我没有从encrypt方法返回BASE64文本,也没有在解密方法中进行base64未编码,因为我试图查看我是否在拼图的BASE64部分中犯了错误.publicclassTripleDESTest{publicstaticvoidmain(String[]args){Stringtext="kyleboon";byte[]codedtext=new

ruby-on-rails - Ruby on Rails 中的 DES3 解密

我的RoR服务器接收到一个字符串,该字符串在C++应用程序中使用des3和base64编码进行了加密密码对象是这样创建的:cipher=OpenSSL::Cipher::Cipher::new("des3")cipher.key=key_strcipher.iv=iv_strkey_str和iv_str:是加密算法的key和初始化向量的字符串表示。它们对于RoR和C++应用程序是相同的。RoR端代码如下:result=""result执行最后一行代码后,出现异常OpenSSL::CipherError(baddecrypt)这里有什么问题?有什么想法吗? 最

ruby - 如何在 node.js 中执行此 PKCS7 签名?

所以我要将一个ruby​​库移植到node.js,并且需要创建一个PKCS7签名。这是ruby​​库正在做的事情:p12_certificate=OpenSSL::PKCS12::new(File.read('some-path.c12'),self.certificate_password)x509_certificate=OpenSSL::X509::Certificate.new(File.read('some-other-path.pem'))flag=OpenSSL::PKCS7::BINARY|OpenSSL::PKCS7::DETACHEDsigned=OpenSSL::

PHP 使用 AES、ECB 模式 block 和 PKCS5Padding 生成对称 key

我需要在ECB模式block中使用标准AES和PKCS5Padding生成对称key,但我做不到。在我的搜索过程中,我只找到了用上述条件加密某些东西的函数。但我不想要这个;我想生成一个对称key。我需要能够与网络服务通信,我需要它,因为它是加密的一部分。我看过phpseclib,但该库也不生成对称key。 最佳答案 首先,要对需要即兴创作的输入执行PKCS#5填充://source:http://php.net/manual/en/ref.mcrypt.php#69782functionpkcs5_pad($text,$blocks

java - AES/CBC/PKCS5PADDING IV - NodeJs 解密(Java 加密)

我正在尝试在NodeJs中解密。它在Java中工作。但我无法在Node中实现相同的目标。node-version:8.4请找到我的NodeJs代码:varcrypto=require('crypto');functiondecryption(message,key){varmessageArray=Buffer.from(message,'base64');//varkekbuf=Buffer(key,'utf8');varivBuffer=newBuffer([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);variv=ivBuffer.slice(0,16);v

c++ - RSASSA_PKCS1v15_SHA_Signer 和 PK_SignatureScheme::KeyTooShort 异常

我是第一次使用Crypto++,遇到了一些麻烦。为什么这在C#中有效(使用相同的key),但在Crypto++中却无效?我将在下面展示我的C#和C++代码。C#代码(有效!):byte[]Modulus=newbyte[]{0xA3,0x1D,0x6C,0xE5,0xFA,0x95,0xFD,0xE8,0x90,0x21,0xFA,0xD1,0x0C,0x64,0x19,0x2B,0x86,0x58,0x9B,0x17,0x2B,0x10,0x05,0xB8,0xD1,0xF8,0x4C,0xEF,0x53,0x4C,0xD5,0x4E,0x5C,0xAE,0x86,0xEF,0x92