标签: des

如何使用CryptoStream(DESCryptoServiceProvider)解密时返回byte []

这是一个初学者的问题,

每次我在互联网上搜索时,使用DESCryptoServiceProvider函数解密总是返回一个字符串.

我们怎样才能获得返回的byte []?

这是代码.感谢您的任何帮助.

DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
cryptoProvider.Padding = PaddingMode.None;
cryptoProvider.Mode = CipherMode.CBC;

MemoryStream memoryStream = new MemoryStream(value);
CryptoStream cryptoStream = new CryptoStream(memoryStream, 
cryptoProvider.CreateDecryptor(password, initVector), CryptoStreamMode.Read);
StreamReader reader = new StreamReader(cryptoStream);

return reader.ReadToEnd();            
//how to return byte[];
Run Code Online (Sandbox Code Playgroud)

c# encryption des bytearray

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

是时候破解DES?这是一个适合脚本小子的任务吗?

已经了解AES是首选的加密方法,如果可能的威胁在脚本小子级别上,是否应该重写使用DES的现有代码?(例如,pkzip密码可以通过非计算机专业人员使用免费实用工具进行破解,DES也是如此?)快速谷歌搜索似乎意味着即使弃用的DES仍然需要超级计算机和大量时间 - 或者有时间改变?

特别是,此CAPTCHA库使用DES加密在视图状态中发送给用户的质询字符串.

captcha cryptography des

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

使用Java中的BigIntegers进行BitShifting

我正在使用BigIntegers在Java中实现DES加密.

我通过执行BigInteger.leftShift(int n)方法将Java二进制密钥与Java BigIntegers一起移位.N(Kn)的关键取决于Kn-1的移位结果.我得到的问题是,我在生成每个密钥后打印出结果,并且转移不是预期的输出.密钥分为2 Cn和Dn(分别为左和右).

我特意尝试这个:"要进行左移,将每个位移到左边一个位置,除了第一个位,循环到块的末尾."

根据转变,似乎最终会对O进行攻击.不知道如何纠正这个问题.

结果:

c0:11110101010100110011000011110

d0:11110001111001100110101010100

c1:111101010101001100110000111100

d1:111100011110011001101010101000

c2:11110101010100110011000011110000

d2:11110001111001100110101010100000

c3:1111010101010011001100001111000000

d3:1111000111100110011010101010000000

c4:111101010101001100110000111100000000

d4:111100011110011001101010101000000000

c5:11110101010100110011000011110000000000

d5:11110001111001100110101010100000000000

c6:1111010101010011001100001111000000000000

d6:1111000111100110011010101010000000000000

c7:111101010101001100110000111100000000000000

d7:111100011110011001101010101000000000000000

c8:1111010101010011001100001111000000000000000

d8:1111000111100110011010101010000000000000000

c9:111101010101001100110000111100000000000000000

d9:111100011110011001101010101000000000000000000

c10:11110101010100110011000011110000000000000000000

d10:11110001111001100110101010100000000000000000000

c11:1111010101010011001100001111000000000000000000000

d11:1111000111100110011010101010000000000000000000000

c12:111101010101001100110000111100000000000000000000000

d12:111100011110011001101010101000000000000000000000000

c13:11110101010100110011000011110000000000000000000000000

d13:11110001111001100110101010100000000000000000000000000

c14:1111010101010011001100001111000000000000000000000000000

d14:11110001111001100110101010100000000000000000000000000000000

c15:11110101010100110011000011110000000000000000000000000000

d15:111100011110011001101010101000000000000000000000000000000000

java encryption des key biginteger

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

PyCrypto:生成使用DES3密码保护的RSA密钥

我已经能够通过使用命令创建一个受DES3密码保护的RSA密钥(嗯...... 我认为因为我对这个加密世界很新)

openssl genrsa -out "/tmp/myKey.pem" -passout pass:"f00bar" -des3 2048
Run Code Online (Sandbox Code Playgroud)

现在,如果可能的话,我想在Python脚本中使用PyCrypto.我看到过这条消息,似乎不鼓励使用PyCrypto来做到这一点.还是那样吗?

当然我总是可以打电话os.execute,执行上面的命令,但我会考虑"作弊" :-).我正在这样做以学习PyCrypto.

先感谢您.

python encryption des rsa pycrypto

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

.NET和PHP加密之间的区别

我有以下生成密钥的c#代码:

    public static byte[] Encrypt(byte[] plainData, string salt)
    {
        DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
        DES.Key = ASCIIEncoding.ASCII.GetBytes(salt);
        DES.IV = ASCIIEncoding.ASCII.GetBytes(salt);
        ICryptoTransform desencrypt = DES.CreateEncryptor();
        byte[] encryptedData = desencrypt.TransformFinalBlock(plainData, 0, plainData.Length);
        return encryptedData;
    }

    private string GetEncryptedKey(string key)
    {
        return BitConverter.ToString(KeyGeneratorForm.Encrypt(ASCIIEncoding.ASCII.GetBytes(key), "abcdefgh")).Replace("-", "");
    }
Run Code Online (Sandbox Code Playgroud)

我正在尝试在PHP中执行相同的操作:

function get_encrypted_key($key){
    $salt = "abcdefgh";
    return bin2hex(mcrypt_encrypt(MCRYPT_DES, $salt, $key, MCRYPT_MODE_CBC, $salt));
}
Run Code Online (Sandbox Code Playgroud)

但是,结果中存在小的差异,因为最后16个字符总是不同的:

With key "Benjamin Franklin":
C# : 0B3C6E5DF5D747FB3C50DE952FECE3999768F35B890BC391
PHP: 0B3C6E5DF5D747FB3C50DE952FECE3993A881F9AF348C64D

With key "President Franklin D Roosevelt":
C# : C119B50A5A7F8C905A86A43F5694B4D7DD1E8D0577F1CEB32A86FABCEA5711E1
PHP: C119B50A5A7F8C905A86A43F5694B4D7DD1E8D0577F1CEB37ACBE60BB1D21F3F
Run Code Online (Sandbox Code Playgroud)

我还尝试使用以下代码对我的密钥执行填充转换:

function get_encrypted_key($key){ …
Run Code Online (Sandbox Code Playgroud)

.net php encryption des

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

WebRTC SRTP解密

我试图建立一个SRTPRTP数据流转换器,我有得到的问题Master KeyWebRTC peerconnection我创造.

根据我的理解,通过DES交换,密钥是通过交换进行的SDP交换,并在a=crypto现场显示.因此,这种情况看起来非常简单(如果我错了,请纠正我),但最终无用,因为WebRTC标准化现在要求不应使用DES(Chrome现在只支持它,将来可能会删除).

对于DTLS,指纹字段中SDP是否有希望在未来交换中使用的证书的哈希值?[编辑:做了一些阅读后,我认为情况并非如此]我会想到的是指纹旁边的能力,通过交换中的DTLS数据包解析我应该能够抓住Master Key解码SRTP流,但我正在撞墙,因为我不知道在哪里看,甚至100%确定它是否是可能.

因此,简而言之,就是它甚至是可行的(并不进入下C++ API和创建我自己的实现的WebRTC)的解码SRTP是与创造的原料WebRTC PeerConnectionChromeFireFox(从收集到的信息嗅探可能通过分组SDP交换)?[编辑:令人沮丧,似乎访问密钥(也称为主密钥)的私有部分是不可能的......请大家指正,如果我错]

encryption des rtp dtls webrtc

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

为什么我可以使用一个DES密钥加密数据并成功解密另一个DES密钥?

我尝试使用pyDes和Crypto.Cipher.DES模块实现DES算法.我发现了一个问题,当我用82514145密钥加密然后解密密码93505044我可以检索解密的文本.我发现256个键表现得像这样.这违反了密码学.我的代码如下:

    from Crypto.Cipher import DES
    plain_text = 'asdfghij'
    print 'plain Text: ', plain_text

    des = DES.new('82514145', DES.MODE_ECB)
    cipher_text = des.encrypt(plain_text)
    print 'the cipher text is ', cipher_text

    des = DES.new('93505044', DES.MODE_ECB)
    print 'the decrypted text is: ', des.decrypt(cipher_text)
Run Code Online (Sandbox Code Playgroud)

输出是:

plain Text:  asdfghij

the cipher text is  @?Z????

the decrypted text is:  asdfghij
Run Code Online (Sandbox Code Playgroud)

我的工作有什么不对吗?我也用pyDes得到了相同的结果.

python cryptography des encryption-symmetric pycrypto

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

TripleDES密钥大小 - .NET与维基百科

根据维基百科,TripleDES支持56,112和168位密钥长度,但System.Cryptography.TripleDESCryptoServiceProvider.LegalKeySizes表示它只接受128和192位密钥长度.

我正在开发的系统需要可以互操作(我的代码加密的数据需要在PHP,Java和Objective-C中解密),在这种情况下我不是正确的.

那么我应该相信谁呢?我怎样才能确定我的加密数据是否可移植?

encryption wikipedia des tripledes

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

如何使用ExoPlayer播放DES加密文件

我正在使用ExoPlayer从设备的SD卡播放媒体文件(mp4s .h264编码).一些文件是DES加密的.我可以解密文件并返回一个inputStream,但后来我不确定如何使用ExoPlayer播放这个inputStream.任何帮助,将不胜感激.

protected void playVideo(File file) {
        InputStream is;
        if (file.getName().endsWith(".DES")) {
            is = FileManager.decryptFile(file);
            //what to do with this input stream?
        }

        Uri uri = Uri.parse(file.getAbsolutePath());

        if (mPlayer != null) {
            mPlayer.release();
        }

        mPlayer = new VideoPlayer(getRendererBuilder(uri));
        mPlayer.addListener(this);
        if (mLastPosition > 0) {
            mPlayer.seekTo(mLastPosition);
        }

        mPlayer.prepare();
        mPlayer.setSurface(mSurface);
        mPlayer.setPlayWhenReady(true);
    }
Run Code Online (Sandbox Code Playgroud)

java encryption android des

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

DES 蛮力(学术)

我正在上计算机安全课程,我们的一项任务是对具有弱密钥的 DES 进行暴力破解。

我的代码:

    public static void main(String[] args) throws Exception {
        String temp;
        String current;
        String plaintext;
        
        //Generate key for DES
        String initkey = "00000006";
        byte[] Rawkey = initkey.getBytes();
        DESKeySpec dks =  new DESKeySpec(Rawkey);
        SecretKeyFactory skf = SecretKeyFactory.getInstance("DES");
        SecretKey desKey = skf.generateSecret(dks);
        
        //Text Enc & Dec
        Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
        
        //Declare wether to enc or dec
        cipher.init(Cipher.ENCRYPT_MODE,desKey);
        byte []message = "Decrypted Successfully".getBytes();
        byte []messageEnc = cipher.doFinal(message);
        plaintext = new String(message);
        System.out.println("Cipher Text: " + new String(messageEnc) );

        for(int i=0;i<10;i++){ …
Run Code Online (Sandbox Code Playgroud)

java encryption cryptography des brute-force

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