首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏逆向技术

    BlowFish加解密原理与代码实现

    目录 BlowFish加解密原理与代码实现 一丶简介 二丶原理与代码介绍 2.1 BlowFish算法流程 2.2 子密钥生成 2.3 加密原理 2.4 BlowFish的解密 2.5.完成代码 BlowFish 加解密原理与代码实现 一丶简介 ​ BlowFish 是一个对称加密的加密算法。 八个字节 BlowFish 密钥采用32-448位 BlowFish是由一个16轮循环的Feistel结构进行加密的。 二丶原理与代码介绍 2.1 BlowFish算法流程 BlowFish 算法流程是由两部分组成 分别是密钥扩展以及数据加密 在数据加密中是一个16轮循环的Feistel网络。 先说一下BlowFish需要的子密钥。 BlowFish在加密或者初始化的过程中会使用两个盒来进行加密 分别是PBOX 以及SBOX PBOX是 由18个32位的字的子密钥组成的。

    5K11发布于 2021-06-17
  • 来自专栏程序那些事

    密码学系列之:blowfish对称密钥分组算法

    简介 Blowfish是由Bruce Schneier在1993年发明的对称密钥分组加密算法,类似的DES和AES都是分组加密算法,Blowfish是用来替代DES算法出现的,并且Blowfish是没有商用限制的 blowfish详解 blowfish和DES一样,使用的是feistel密码来进行分组加密。blowfish的分组块大小是64bits,可变密钥长度可以从32bits到448bits不等。 blowfish的缺点 Blowfish使用64位块大小(与AES的128位块大小相比)使它容易受到生日攻击,特别是在HTTPS这样的环境中。 因为blowfish的块只有64bits,比较小,所以GnuPG项目建议不要使用Blowfish来加密大于4 GB的文件。 但是Blowfish的发明人布鲁斯·施耐尔(Bruce Schneier)还是建议大家迁移到Blowfish的继承者Twofish去。

    92320发布于 2021-06-21
  • 来自专栏程序那些事

    密码学系列之:blowfish对称密钥分组算法

    简介 Blowfish是由Bruce Schneier在1993年发明的对称密钥分组加密算法,类似的DES和AES都是分组加密算法,Blowfish是用来替代DES算法出现的,并且Blowfish是没有商用限制的 blowfish详解 blowfish和DES一样,使用的是feistel密码来进行分组加密。blowfish的分组块大小是64bits,可变密钥长度可以从32bits到448bits不等。 blowfish需要进行16轮的feistel加密操作,我们先从下图大致感受一下blowfish算法的加密流程: ? 因为blowfish的块只有64bits,比较小,所以GnuPG项目建议不要使用Blowfish来加密大于4 GB的文件。 但是Blowfish的发明人布鲁斯·施耐尔(Bruce Schneier)还是建议大家迁移到Blowfish的继承者Twofish去。

    1.4K31发布于 2021-07-15
  • 来自专栏程序那些事

    密码学系列之:bcrypt加密算法详解

    bcrypt的工作原理 我们先回顾一下Blowfish的加密原理。 blowfish首先需要生成用于加密使用的K数组和S-box, blowfish在生成最终的K数组和S-box需要耗费一定的时间,每个新的密钥都需要进行大概4 KB文本的预处理,和其他分组密码算法相比, 而对于恶意攻击者来说,每次尝试新的密钥都需要进行漫长的预处理,所以对攻击者来说要破解blowfish算法是非常不划算的。所以blowfish是可以抵御字典攻击的。 他们为Blowfish开发了一种新的密钥设置算法,将由此产生的密码称为 “Eksblowfish”(”expensive key schedule Blowfish”)。 他们还建议让crypt_blowfish对新算法生成的哈希值使用头$2y$。 当然这个改动只限于PHP的crypt_blowfish

    1.6K40发布于 2021-09-16
  • 来自专栏程序那些事

    密码学系列之:bcrypt加密算法详解

    bcrypt的工作原理 我们先回顾一下Blowfish的加密原理。 blowfish首先需要生成用于加密使用的K数组和S-box, blowfish在生成最终的K数组和S-box需要耗费一定的时间,每个新的密钥都需要进行大概4 KB文本的预处理,和其他分组密码算法相比, 而对于恶意攻击者来说,每次尝试新的密钥都需要进行漫长的预处理,所以对攻击者来说要破解blowfish算法是非常不划算的。所以blowfish是可以抵御字典攻击的。 他们为Blowfish开发了一种新的密钥设置算法,将由此产生的密码称为 “Eksblowfish”(”expensive key schedule Blowfish”)。 他们还建议让crypt_blowfish对新算法生成的哈希值使用头2y。当然这个改动只限于PHP的crypt_blowfish

    5.5K10发布于 2021-09-24
  • 来自专栏一朵灼灼华的博客

    有关CRT密码反编译问题

    前提 本来想使用sftp往服务器上传点文件,结果密码忘记了,查看密码记事本也不记得,只好反编译crt里面的密码 python3 from Crypto.Cipher import Blowfish (bytes.fromhex(str_c1), Blowfish.MODE_CBC, b'\x00'*8) c2 = Blowfish.new(bytes.fromhex(str_c2), Blowfish.MODE_CBC def decrypt(passwd): c1 = Blowfish.new('5F B0 45 A2 94 17 D9 16 C6 C6 A2 FF 06 41 82 B7'.replace (' ','').decode('hex'), Blowfish.MODE_CBC, '\x00'*8) c2 = Blowfish.new('24 A6 3D DE 5B D3 B3 82 9C 7E 06 F4 08 16 AA 07'.replace(' ','').decode('hex'), Blowfish.MODE_CBC, '\x00'*8) padded = c1.decrypt

    95210编辑于 2022-08-05
  • 来自专栏煎饼的博客

    phpMyAdmin错误提示解决

    /tmp/)无法访问,phpMyAdmin无法缓存模板文件,所以会运行缓慢 配置文件现在需要一个短语密码 配置文件中的密文(blowfish_secret)太短。 '] = ''; 改成 $cfg['blowfish_secret'] = 'KNGAP7pQhZRUFjVd4UEyqyslGNHow4HI'; (随意32个字符) /** * The 'cookie * * @global string $cfg['blowfish_secret'] */ $cfg['blowfish_secret'] = 'KNGAP7pQhZRUFjVd4UEyqyslGNHow4HI '] = ''; 改成 $cfg['blowfish_secret'] = 'KNGAP7pQhZRUFjVd4UEyqyslGNHow4HI'; (随意32个字符) /** * This is Needs to be 32 chars long. */ $cfg['blowfish_secret'] = 'KNGAP7pQhZRUFjVd4UEyqyslGNHow4HI'; /* YOU MUST

    3.4K10编辑于 2022-12-13
  • 来自专栏鹿苑

    PHP处理密码的几种方式

    php function generateHash($password) { if (defined("CRYPT_BLOWFISH") && CRYPT_BLOWFISH) { substr(md5(uniqid(rand(), true)), 0, 22); return crypt($password, $salt); } } Bcrypt 其实就是Blowfish 和crypt()函数的结合,我们这里通过CRYPT_BLOWFISH判断Blowfish是否可用,然后像上面一样生成一个盐值,不过这里需要注意的是,crypt()的盐值必须以2a或者2y开头,详细资料可以参考下面的链接 : http://www.php.net/security/crypt_blowfish.php 更多资料可以看这里: http://php.net/manual/en/function.crypt.php

    95630编辑于 2022-03-02
  • 来自专栏网络安全技术点滴分享

    揭秘Twonky Server高危漏洞:一键获取管理员密码(CVE-2025-13315/13316)

    try: # 使用CVE-2025-13316漏洞解密密码 password = decrypt_blowfish_ecb(idx, cipher_hex) print except Exception as e: print(f"[-] Decryption failed: {e}")Blowfish ECB解密函数def decrypt_blowfish_ecb (key_index, ciphertext_hex): """使用硬编码的Blowfish密钥解密Twonky凭据 Args: key_index (int): 密钥索引 KEYS[key_index] # 将十六进制字符串转换为字节 ciphertext = binascii.unhexlify(ciphertext_hex) # 创建Blowfish ECB模式解密器 cipher = Cipher(algorithms.Blowfish(key), modes.ECB(), backend=default_backend()) decryptor

    9600编辑于 2026-01-24
  • 来自专栏墨白的Java基地

    【工具】Navicat 17 导出的 connections.ncx 文件密码解密

    byte[] encryptBlowfish(byte[] input) throws Exception { Cipher cipher = Cipher.getInstance("Blowfish /ECB/NoPadding"); SecretKeySpec keySpec = new SecretKeySpec(blowKey, "Blowfish"); cipher.init byte[] decryptBlowfish(byte[] input) throws Exception { Cipher cipher = Cipher.getInstance("Blowfish /ECB/NoPadding"); SecretKeySpec keySpec = new SecretKeySpec(blowKey, "Blowfish"); cipher.init

    1.2K10编辑于 2025-06-06
  • 来自专栏程序那些事

    密码学系列之:twofish对称密钥分组算法

    简介 之前的文章我们讲到blowfish算法因为每次加密的块比较小只有64bits,所以不建议使用blowfish加密超过4G的文件。同时因为加密块小还会导致生日攻击等。 所以才有了blowfish的继承者twofish。 今天我们一起来揭秘一下twofish这个加密算法。 twofish的起源 twofish和blowfish一样,也是一种对称加密算法。 twofish和Blowfish一样也是免费的。 twofish的原理 twofish是由blowfish演化来的。我们先看下twofish的工作图: ?

    1.3K10发布于 2021-07-15
  • 来自专栏全栈程序员必看

    phpmyadmin安装教程及配置设置

    3.打开config.inc.php文件(可以用写字板),找到$cfg[‘blowfish_secret’]=”;与$cfg[‘servers’][$i][‘auth_type’]=’cookie’;, 如果$cfg[‘servers’][$i][‘auth_type’]的值就像前面看到的那样为cookie的话,那么我们必须在$cfg[‘blowfish_secret’]=”的引号中任意写入一串字符,大家可以把它理解为一个身份验证码 比如$cfg[‘blowfish_secret’]=’sunec’。存盘退出。    phpmyadmin需要数据用户名和密码进行验证,,具体如下:   php安装模式为apache,可以使用http和cookie;   php安装模式为cgi,可以使用cookie   e.短语密码(blowfish_secret )的设置   $cfg[‘blowfish_secret’] = ”;   如果认证方法设置为cookie,就需要设置短语密码,置于设置为什么密码,由您自己决定 ,但是不能留空,否则会在登录phpmyadmin

    2.9K10编辑于 2022-09-05
  • 来自专栏程序那些事

    密码学系列之:twofish对称密钥分组算法

    简介 之前的文章我们讲到blowfish算法因为每次加密的块比较小只有64bits,所以不建议使用blowfish加密超过4G的文件。同时因为加密块小还会导致生日攻击等。 所以才有了blowfish的继承者twofish。 今天我们一起来揭秘一下twofish这个加密算法。 twofish的起源 twofish和blowfish一样,也是一种对称加密算法。 twofish和Blowfish一样也是免费的。 twofish的原理 twofish是由blowfish演化来的。

    1.1K20发布于 2021-06-30
  • 来自专栏离别歌 - 信息安全与代码审计

    md5(unix)原理分析

    Magic magic是表明这一段哈希是通过什么算法得到的,对应关系如下: $0 = DES $1 = MD5 $2a(2y) = Blowfish $5 = SHA-256 $6 = SHA-512 速度明显降下来了,只有656 words/s 前两天爆出的Joomla注入,获取到的hash值使用的加密方法是Bcrypt + Blowfish 。 不过,这却不是最慢的,Minos(https://github.com/phith0n/Minos) 使用的也是Bcrypt + Blowfish,但我将其cost设置为12。 (cost=10默认)(joomla的加密方式) echo password_hash("123123", CRYPT_BLOWFISH); 生成一个bcrypt+blowfish(cost=12)(minos 的加密方式) echo password_hash("123123", CRYPT_BLOWFISH, ["cost" => 12]); 在渗透过程中,我们也可以直接用工具生成这类密码。

    1.6K30发布于 2020-10-15
  • 来自专栏FreeBuf

    如何PWN掉西门子工控设备

    其中用于测试的64位大小的密码表明利用DES或Blowfish作为加密算法。另外值得注意的是,管理员帐户有两个密码。 密码加密分析 我们可以找到单词“password”的函数引用或找到任何类似加密的函数调用,重点放在blowfish或des加密上。 在“clieditpasswordset”函数中标识了blowfish函数调用,证明使用了可逆加密。 blowfish测试函数是使用特定的常数来识别的,这些常数可以在网上搜索到,这样就可以识别所使用的确切blowfish库,该库可以从github下载。 ? 可以通过标识传递给寄存器r1的值来跟踪用于blowfish的加密密钥。寄存器r0将包含“ctx”变量,r1将包含密钥,r2将包含密钥的长度。

    1.3K00发布于 2019-10-10
  • 来自专栏上善若水

    011各种加密算法比较

    算法选择(从性能和安全性综合) 对称加密: AES(128位), 非对称加密: ECC(160位)或RSA(1024), 消息摘要: MD5 数字签名:DSA 轻量级:TEA、RC系列(RC4),Blowfish (不常换密钥) 速度排名(个人估测,未验证):IDEA <DES <GASTI28<GOST<AES<RC4<TEA<Blowfish 简单的加密设计: 用密钥对原文做 异或,置换,代换,移位 名称 数据大小(MB) 时间(s) 平均速度MB/S 评价 DES 256 10.5 22.5 低 3DES 256 12 12 低 AES(256-bit) 256 5 51.2 中 Blowfish 可抗差值分析和相关分析 加长字长为32bit、密钥为256bit,采用232 模加、232+1模乘 适用于ASIC设计 GOST 256bit密钥32轮迭代 较快 军事级 加大迭代轮数 S盒可随机秘密选择,便于软件实现 Blowfish AES(Advanced Encryption Standard):高级加密标准,对称算法,是下一代的加密算法标准,速度快,安全级别高,在21世纪AES 标准的一个实现是 Rijndael 算法; 8、BLOWFISH

    5.3K31发布于 2018-09-28
  • 来自专栏入门小站

    linux牛说cowsay

    |----w | || || 安装 # yum install cowsay -y cowsay 支持的动物 # cowsay -l beavis.zen blowfish ^-` ^-_ ///-._ _ _ _ _ _ _}^ - - - - ~ ~-- ,.-~ 鱼 # cowsay -f blowfish

    72610编辑于 2022-06-02
  • 来自专栏全栈程序员必看

    encrypt函数_crypt12

    Crypt()函数 crypt()函数返回使用DES、Blowfish或MD5算法加密的字符串。在不同的操作系统上,crypt()函数的行为不同,某些操作系统支持一种以上的算法类型。 [CRYPT_BLOWFISH] Blowfish 算法使用如下盐值:“$2a$”,一个两位 cost 参数,“$” 以及 64 位由 “./0-9A-Za-z” 中的字符组合而成的字符串。 如果盐值字符串以 “rounds=<N>$” 开头,N 的数字值将被用来指定散列循环的执行次数,这点很像 Blowfish 算法的 cost 参数。 如果盐值字符串以 “rounds=<N>$” 开头,N 的数字值将被用来指定散列循环的执行次数,这点很像 Blowfish 算法的 cost 参数。

    91910编辑于 2022-09-20
  • 来自专栏PHP在线

    PHP处理密码的几种方式

    php function generateHash($password) { if (defined("CRYPT_BLOWFISH") && CRYPT_BLOWFISH) { substr(md5(uniqid(rand(), true)), 0, 22); return crypt($password, $salt); } } Bcrypt 其实就是Blowfish 和crypt()函数的结合,我们这里通过CRYPT_BLOWFISH判断Blowfish是否可用,然后像上面一样生成一个盐值,不过这里需要注意的是,crypt()的盐值必须以2a或者2y开头,详细资料可以参考下面的链接 : http://www.php.net/security/crypt_blowfish.php 更多资料可以看这里: http://php.net/manual/en/function.crypt.php

    1.6K40发布于 2018-07-27
  • 来自专栏全栈程序员必看

    mysql中phpmyadmin安装教程_phpMyAdmin 安装教程全攻略「建议收藏」

    之所以要设置phpmyadmin估计大家都是要架设服务器的如果出现“配置文件现在需要绝密的短语密码(blowfish_secret)”那么请在$cfg[‘blowfish_secret’] = ‘ ‘; 的等号里面设置你网站的cookie,例如:$cfg[‘blowfish_secret’] = ‘www.phpfans.net’;这是因为你的“$cfg[‘Servers’][$i][‘auth_type

    2K20编辑于 2022-09-04
领券