标签: des

8字节纯文本的DES加密产生16字节数组

我使用此代码加密8字节PlainText与8字节键,但结果始终是16字节数组.

public static byte[] Encrypt(byte[] PlainText, byte[] key)
{
    MemoryStream ms = new MemoryStream();
    DESCryptoServiceProvider mDES = new DESCryptoServiceProvider();
    mDES.Mode = CipherMode.ECB;
    mDES.Key = key;

    CryptoStream encStream = new CryptoStream(ms, mDES.CreateEncryptor(), CryptoStreamMode.Write);
    BinaryWriter bw = new BinaryWriter(encStream);

    bw.Write(PlainText);
    bw.Close();
    encStream.Close();

    byte[] buffer = ms.ToArray();
    ms.Close();

    return buffer;
}
Run Code Online (Sandbox Code Playgroud)

ouptut的前8个字节是我所期望的,但其余的我不知道它是什么..这个代码有问题吗?

c# encryption des

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

Big-O表示法:加密算法

我目前正在完成一篇关于通过各种加密算法加密数据的论文.

我花了很多时间阅读期刊和论文,但目前还没有找到任何关于其表现复杂性的记录.

有人会想到以下算法的Big-O复杂性吗?

  • RSA
  • DES
  • 三重DES(我期望它与DES的顺序相同)
  • AES
  • 河豚

先感谢您; 如果你能提供一个信誉良好和可信的来源的链接,如果非常感谢.

encryption big-o cryptography des rsa

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

C#从SQL Server EncryptByPassPhrase解密字节吗?

在C#中复制T-SQL DecryptByPassPhrase,我无法获得与MSSQL简单的加密在C#descrypt。某些列中的加密值是必需的,因为该表会定期导出到Excel和Access中,因此简单的加密足以“阻止”值,而无需开发人员去(重新)执行视图等工作。

在SQL Server 2012中:

    select EncryptByPassPhrase( N'hello' , N'world'  ) 
-- returns 0x01000000AA959FFB3A8E4B06B734051437E198C8B72000A058ACE91D617123DA102287EB
Run Code Online (Sandbox Code Playgroud)

在C#中:

byte[] buf = System.Text.Encoding.UTF8.GetBytes( "0x010000003A95FA870ED699A5F90D33C2BF01491D9132F61BA162998E96F37117AF5DA0905D51EB6FB298EC88" );
// bytes emitted from the database
var cp = new TripleDESCryptoServiceProvider();
var m = new MemoryStream(buf);
cp.Key = System.Text.Encoding.UTF8.GetBytes( "hello" ); // throws
cp.IV = System.Text.Encoding.UTF8.GetBytes( "hello" ); // throws
CryptoStream cs = new CryptoStream( m , cp.CreateDecryptor( cp.Key , cp.IV ) , CryptoStreamMode.Read );
StreamReader reader = new StreamReader( cs );
string plainText = reader.ReadToEnd();
Run Code Online (Sandbox Code Playgroud)

工作的C#代码应该是什么样的? …

sql-server encryption des cryptostream

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

在c ++中将char或string转换为bitset

我正在做DES加密的任务,我似乎无法转换字符串,更不用说将字符串转换为bitset.谁能告诉我如何将单个字符串转换为C++中的bitset?

c++ des

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

python:如何加密文件?

任何人都可以帮助(或指出一些例子)关于如何使用python加密文件?我必须使用以下参数来加密文件:

block size=8
iv=qwertyui12345678
method=des3_cbc
Run Code Online (Sandbox Code Playgroud)

我也不知道是什么iv意思

请帮忙.提前致谢.

python encryption des

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

破解DES的代码

我正在学习密码学,我需要开发 Java 或 C 代码来破解 DES(数据加密标准)。我知道 DES 中使用的算法,但我不知道我应该如何使用 Java 或 C 进行编码。我听说过 Java 密码体系结构,但我不确定如何使用它?有人可以为我提供一个简短的教程吗?

谢谢

cryptography des

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

编码/解码 RealVNC 密码

我正在尝试编写可以远程更改另一个盒子上的 RealVNC 密码的 C# 应用程序。

目前有效的是,我可以从已经更改的框中提取密码,将其存储为十六进制字符串,然后将其发送到另一个框,然后以这种方式更改密码,但我需要能够更改密码或即时随机化。

我在创建正确的二进制文件以放置在注册表中时遇到问题。

我知道 VNC 密钥:

byte[] Key = { 23, 82, 107, 6, 35, 78, 88, 7 };
Run Code Online (Sandbox Code Playgroud)

所以使用上面的密钥并传递“1234”作为密码使用以下代码进行加密:

public static byte[] EncryptTextToMemory(string Data, byte[] Key)
{
    try
    {
        MemoryStream mStream = new MemoryStream()

        DESCryptoServiceProvider desProvider = new DESCryptoServiceProvider();
        desProvider.Mode = CipherMode.ECB;
        desProvider.Key = Key;

        CryptoStream cStream = new CryptoStream(mStream,
            desProvider.CreateEncryptor(),
            CryptoStreamMode.Write);

        byte[] toEncrypt = new ASCIIEncoding().GetBytes(Data);

        cStream.Write(toEncrypt, 0, toEncrypt.Length);
        cStream.FlushFinalBlock();

        byte[] ret = mStream.ToArray();

        cStream.Close();
        mStream.Close();

        return ret;
    }
    catch (CryptographicException ex)
    {
        MessageBox.Show("A …
Run Code Online (Sandbox Code Playgroud)

c# des .net-2.0

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

使用 16 字节密钥的 C++ Des 加密

我正在尝试使用 16 字节密钥在 DES 中加密动态长度的文本,但是密钥和文本的块大小存在问题,我正在使用 openssl 库进行 DES 加密。如何使用长度为 16 字节的密钥。

这是我的例子:

char * Encrypt( char Key, char *Msg, int size) { 
      static char*    Res;
      DES_cblock      Key2;
      DES_key_schedule schedule;

      Res = ( char * ) malloc( size );

      memcpy(Key2, Key, 8);
      DES_set_odd_parity( &Key2 );
      DES_set_key_checked( &Key2, &schedule );

      unsigned char buf[9];    
      buf[8] = 0;

      DES_ecb_encrypt(( DES_cblock  ) &Msg, ( DES_cblock  ) &buf, &schedule, DES_ENCRYPT );    
      memcpy(Res, buf, sizeof(buf));    
      return (Res);
}

int main(int argc, char const *argv[]) {
      char key[] …
Run Code Online (Sandbox Code Playgroud)

c++ des

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

递归迭代每个字符组合

预期结果:

该程序采用哈希密码作为输入; 这被传递给decrypt函数.该函数迭代每个混合大小写的n字母组合,对每个这样的字符串进行散列.如果找到与输入匹配的内容,则会打印出未散列的密码; 否则,它会退出.

实际结果:

函数仅针对当前迭代中的最后一个字母迭代每个混合大小写字母.

问题描述:

我正在尝试用Python实现一个简单的暴力DES加密密码破解程序.我使用了很多for循环实现了4个字符的密码实现,但现在我想使用递归来重构一段长度.如何迭代每个字符组合,从1-char组合到4个字符的字符串组合?

我想用这一行:

            password[i] = string.ascii_letters[j]
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

TypeError: 'str' object does not support item assignment
Run Code Online (Sandbox Code Playgroud)

代码段:

def decrypt(encryptedText):
    # reference global variable
    global password
    # check curr password guess length
    pwdlen = len(password)

    if pwdlen >= 4:
        print("Password is longer than 4 characters, exiting...")
        exit(2)

    # debug lines
    print("password is {}".format(password))
    print("length: {}".format(pwdlen))
    time.sleep(2)

    # first two characters is salt
    salt = encryptedText[:2]

    # Check hashes for every combination of strings and compare them …
Run Code Online (Sandbox Code Playgroud)

python string recursion crypt des

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

加密密钥大小 DES Java

我想使用此密钥 C6864E7696C686 和 DES 算法加密挑战(如 162236fe0bec620827958c8fdf7e4bc7 )。

这是我的代码:

import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.xml.bind.DatatypeConverter;
import javax.crypto.spec.DESKeySpec;


def data = prev.getResponseData();
String challenge = javax.xml.bind.DatatypeConverter.printHexBinary(data);
final String strPassPhrase = "C6864E7696C686";

String param = challenge;
System.out.println("Text : " + param);

SecretKeyFactory factory = SecretKeyFactory.getInstance("DES");
SecretKey key = factory.generateSecret(new   DESKeySpec(hexStringToByteArray(strPassPhrase)));
Cipher cipher = Cipher.getInstance("DES");

cipher.init(Cipher.ENCRYPT_MODE, key);
String str = DatatypeConverter.printBase64Binary(cipher.doFinal(param.getBytes()));
System.out.println("Text Encryted : " + str);
cipher.init(Cipher.DECRYPT_MODE, key);
String str2 = new String(cipher.doFinal(DatatypeConverter.parseBase64Binary(str)));
System.out.println("Text Decryted : " + str2);
Run Code Online (Sandbox Code Playgroud)

但我得到这个例外:

java.security.InvalidKeyException: …
Run Code Online (Sandbox Code Playgroud)

java encryption des exception

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