标签: des

DES crypt中的盐

系统如何知道例如在svn环境中,如果输入的密码正确,则使用DES crypt散列将帐户存储在.passwd中.

纠正我如果我错了,但如果我转换某个密码,例如"测试"使用DES哈希,因为盐有很多可能性.系统(我想象它只是比较生成的哈希值)如何知道输入的密码是否正确?

hash des

2
推荐指数
2
解决办法
4883
查看次数

如何在Java中生成双倍长度的3-DES密钥

我正在寻找有关如何生成双倍长度3-DES密钥的信息,代码示例,java库.有人可以指导我吗?

非常感谢你!

java encryption cryptography des

2
推荐指数
1
解决办法
971
查看次数

使用DES在Java中加密和解密文件

我正在尝试序列化一个对象(在这种情况下是一个简单的字符串),加密它,并将其写入文件.加密似乎有效,但解密总是失败.我试过四处寻找,但我似乎无法弄清楚我做错了什么..

// Create a new key to encrypt and decrypt the file
byte[] key = "password".getBytes();

// Get a cipher object in encrypt mode 
Cipher cipher = null;
try {
    DESKeySpec dks = new DESKeySpec(key);
    SecretKeyFactory skf = SecretKeyFactory.getInstance("DES");
    SecretKey desKey = skf.generateSecret(dks);
    cipher = Cipher.getInstance("DES");
    cipher.init(Cipher.ENCRYPT_MODE, desKey);
} catch (InvalidKeyException | NoSuchAlgorithmException | InvalidKeySpecException | NoSuchPaddingException ex) {
    System.err.println("[CRITICAL] Incryption chiper error");
}

// Encrypt the file
try {
    new ObjectOutputStream(new CipherOutputStream(new FileOutputStream("test"), cipher)).writeObject("test text");
} catch (IOException e) …
Run Code Online (Sandbox Code Playgroud)

java serialization des

1
推荐指数
1
解决办法
2965
查看次数

数据加密标准测试向量

有谁知道我在哪里可以找到64位DES算法的每个组件的测试向量(Key schedul,密码函数等)?例如,我想测试64位密钥生成并生成所有16个密钥生成.我在VHDL中实现算法,所以我需要检查组件.我的实现基于本文.

谢谢

des vhdl

1
推荐指数
1
解决办法
1721
查看次数

如何在python中顺序更改字符串?

我正在尝试为DES上的暴力攻击编写一个程序,键是一个由8位字符组成的字符串,例如(12345678).

所以我需要一些帮助来编写一个程序,我可以将测试键设置为(00000000)并开始逐步循环(00000001),(00000002)直到(99999999)并且每次尝试按键.

我已经完成了DES程序,现在我的大脑仍然坚持这部分.

更新:非常感谢Hyperboreus,关键生成器功能,但是当我在我的程序中使用它时,我收到错误消息

UnicodeDecodeError:'utf-8'编解码器无法解码位置1中的字节0xbf:无效的起始字节

任何大于(00000002)的密钥

这是我的代码

from Crypto.Cipher import DES 
import os 
import base64

print ("key size is fixed at 16 Bytes including parities (56 bits effective)")
size = 16

key = '00000002'
cipher = DES.new(key)            
BS = 8


def getMode():
    while True:
        mode = input('Do you wish to Encrypt "e", Decrypt "d" or Brute force "b" a message?\n')
        if mode in 'e d b'.split():
            return mode
        else:
            print('Enter either "e" for encrypt,"d" for decrypt, or "b" …
Run Code Online (Sandbox Code Playgroud)

python string des generator sequence

1
推荐指数
1
解决办法
229
查看次数

javax.crypto.IllegalBlockSizeException:输入长度不是8个字节的倍数

我在解密时遇到此错误,我经历了类似的帖子,但是我没有从那里得到任何帮助。我想将对象直接存储在带有加密的文件中,因为我已经在这里发布了我的问题。但是,在使用流时,我得到的错误与使用字符串得到的错误相同。

package security;

import java.security.spec.KeySpec;

import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESedeKeySpec;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

/**
 * This class defines methods for encrypting and decrypting using the Triple DES
 * algorithm and for generating, reading and writing Triple DES keys. It also
 * defines a main() method that allows these methods to be used from the command
 * line.
 */
public class TripleDesEncryptionDecryption {
  /**
   * The program. The first argument must be -e, -d, or …
Run Code Online (Sandbox Code Playgroud)

java des tripledes

1
推荐指数
1
解决办法
2万
查看次数

我需要什么类型的加密?

好的,最初的任务是在2个能够共享用户cookie的"友好"网站中跟踪用户(比方说,我有example.com,我的朋友有mysite.com,而且他有一个域simple.example. com所以他可以在.example.com上设置cookie.

要跟踪我们想要设置唯一cookie的用户活动,此cookie应该是唯一的并且长度为32个字节(ascii).从这个角度来看非常简单,可以这样实现:

md5(microtime)
Run Code Online (Sandbox Code Playgroud)

就是这样,但现在我们有了新的约束:

  1. 我们应该能够告诉谁确切地设置了cookie:exmaple.com引擎或mysite.com引擎

  2. 仍然需要32个字节的长度

  3. 我们应该能够加密时间戳(发布cookie时)

  4. 结果cookie值的第一个和最后一个字符应该不同,所以我们可以根据cookie进行A/B测试(所以我们总是可以说,如果cookie的最后一个字符是"> K",则显示此用户"功能A")

鉴于结果字符串的长度应始终为32个或更少,并且数据应加密和解密(当然不是用户),并且字符串对于用户应该是唯一的,这使得任务非常复杂.

我的想法和问题:

  • 我们应该使用对称密钥加密(解决约束 1和3),但是在这种情况下我们如何确保结果字符串不超过32个字符(约束 2)?

  • 考虑到我们需要加密的数据量是:时间戳和微秒(14字节),站点发布者标志(1字节)=总共15字节,还有其他解决方案吗?

我的第一个想法是将数据打包成二进制字符串而不是base64编码.结果将是8-chars长base64编码的字符串:

def encode():
    base64( pack('Lv', timestamp, microseconds) )
Run Code Online (Sandbox Code Playgroud)

在开头和结尾添加site-issuer标志和字符:

def getCookie():
    rand('a'...'Z') + encode() + issuerFlagChar() + rand('a'...'Z')
Run Code Online (Sandbox Code Playgroud)

因此,结果是11个字符长,我们很容易满足约束2.

但问题是:这个算法肯定不安全,我不确定数百万网站用户的结果字符串是否是唯一的.

我想知道我是否可以为此目的使用DES或AES,但我不确定结果字符串是否总是满足约束2(结果字符串不应超过32个ascii字符).

是否存在对称密钥算法,以确保"如果使用M字节密钥加密N个字节,那么结果数据长度为Math.Ceil(N*2 + 1/M)字节"?因此产生的长度是可预测的?

encryption des aes encryption-symmetric

1
推荐指数
1
解决办法
315
查看次数

解密加密文本文件内容并将其复制到MemoryStream

我试图将文本文件的加密内容复制到内存流中,然后解密这些内容并将其复制到新的内存流中。当我到达发生复制的代码时,我在调试时收到无效数据错误。

这是我得到的代码块:

Function DecryptFile(ByVal sInputFilename As String, ByVal sKey As String) As Byte()

    Dim DES As New DESCryptoServiceProvider()

    DES.Key() = ASCIIEncoding.ASCII.GetBytes(sKey)
    DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey)

    Dim desdecrypt As ICryptoTransform = DES.CreateDecryptor()

    Dim encryptedByteArray() As Byte
    encryptedByteArray = File.ReadAllBytes(sInputFilename)

    Dim encryptedMS As MemoryStream = New MemoryStream(encryptedByteArray)
    Dim cryptostreamDecr As New CryptoStream(encryptedMS, desdecrypt, CryptoStreamMode.Read)
    Dim decryptedMS As MemoryStream = New MemoryStream()

    cryptostreamDecr.CopyTo(decryptedMS) 'Error occurs here
    cryptostreamDecr.Close()

    Return decryptedMS.ToArray()
End Function
Run Code Online (Sandbox Code Playgroud)

我正在关注散布在网络上的示例,从我读过的内容来看,这段代码应该可以工作......

谁能向我解释我做错了什么?

vb.net encryption des tripledes

1
推荐指数
1
解决办法
159
查看次数

什么是DES-X?

什么是DES-X?

DES-X和DES,它们向后兼容吗?

encryption des

0
推荐指数
1
解决办法
1762
查看次数

我们可以在DES中制作自己的S-Box,IP,IP~和其他表吗?它仍然可以使用或应该使用它们提供的内容吗?

我正在尝试构建自己的DES实现!但是我没有成功实施

我使用所有的表,如Initail排列,扩展排列表,排列函数表,PC-1,PC-2和我自己的随机位位置的所有s-box.

我们应该使用DES提供的S-Box还是我们自己创建的?

python encryption cryptography des

0
推荐指数
1
解决办法
1242
查看次数

如何在netbeans java中使用充气城堡(DES)加密和解密文件?

如何使用充气城堡(DESEngine)加密和解密文件(而不是字符串)?我之前搜索过但找不到帮助.

encryption 3des cryptography des bouncycastle

0
推荐指数
1
解决办法
1万
查看次数

如何从encrypted_strings中提取encrypt方法生成的IV向量

encrypt无法encrypted_strings为我提供的特定密码从库中提取使用该方法生成的 IV 。从文档中,我看到此方法使用 C 库根据密码生成密钥和 iv,该库调用与 openssl 相同的方法来生成密钥和 iv:EVP_BytesToKey。

我想要做的是能够为我指定的任何密码打印 IV,以便我可以将加密移植到另一种语言。

你能想到从密码中提取/打印这个 IV 向量的任何方法吗?

这些是该库使用的算法、模式和填充的详细信息:

  • 算法:DES-EDE3
  • 模式:CBC
  • 填充:PKCS5

下面的 ruby​​ 脚本打印出加密的消息,但不知道使用了哪个 iv。

#!/usr/bin/ruby
require 'encrypted_strings'

data = 'Whackabad'
password = 'bAJLyifeUJUBFWdHzVbykfDmPHtLKLMzViHW9aHGmyTLD8hGYZ'

encrypted_data = data.encrypt(:symmetric, :password => password)
printf "Data: #{data}\n"
printf "Encrypted Data: #{encrypted_data}"
Run Code Online (Sandbox Code Playgroud)

我尝试使用openssl它,因为它允许我打印使用-p选项生成的 iv 和密钥,但它使用PKCS7填充而不是PKCS5. 因此,如果我运行下面的命令,则不会打印与上面的 ruby​​ 代码相同的加密字符串。

echo -n 'Whackabad' | openssl enc -des-ede3-cbc -nosalt -a -k bAJLyifeUJUBFWdHzVbykfDmPHtLKLMzViHW9aHGmyTLD8hGYZ
Run Code Online (Sandbox Code Playgroud)

注意:-a:base64 编码,-k:密码和 echo -n:从字符串中删除新行,使其与字符串中的 ruby​​ 大小完全相同。

如果我添加 …

ruby encryption openssl des pkcs#5

0
推荐指数
1
解决办法
961
查看次数