加密算法blowfish 多语言
php加密算法blowfish
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2016-02-14
* Time: 20:03
*/ function newline()
{
printf("<br>");
} $cipher = mcrypt_module_open(MCRYPT_BLOWFISH, '', MCRYPT_MODE_ECB, '');
// The block-size of the Blowfish algorithm is 64-bits, therefore our IV
// is always 8 bytes:
$iv = '12345678'; $key256 = '1234567890123456ABCDEFGHIJKLMNOP';
$key256 = 'closewbq';
$key128 = 'closewbq'; printf("iv: %s\n", bin2hex($iv));
newline();
printf("key256: %s\n", bin2hex($key256));
newline();
printf("key128: %s\n", bin2hex($key128));
newline();
$cleartext = 'The quick brown fox jumped over the lazy dog';
$cleartext='blowfish';
printf("clearText: %s", $cleartext);
newline();
// Do 256-bit blowfish encryption:
// The strengh of the encryption is determined by the length of the key
// passed to mcrypt_generic_init
if (mcrypt_generic_init($cipher, $key256, $iv) != -1) {
// PHP pads with NULL bytes if $cleartext is not a multiple of the block size..
$cipherText = mcrypt_generic($cipher, $cleartext);
mcrypt_generic_deinit($cipher); // Display the result in hex.
printf("256-bit blowfish encrypted:\n%s\n\n", bin2hex($cipherText));
newline();
} // 128-bit blowfish encryption:
if (mcrypt_generic_init($cipher, $key128, $iv) != -1) {
// PHP pads with NULL bytes if $cleartext is not a multiple of the block size..
$cipherText = mcrypt_generic($cipher, $cleartext);
mcrypt_generic_deinit($cipher); // Display the result in hex.
printf("128-bit blowfish encrypted:\n%s\n\n", bin2hex($cipherText));
} mcrypt_module_close($cipher)
// -------
// Results
// -------
// You may use these as test vectors for testing your Blowfish implementations...
//
// iv: 3132333435363738
// key256: 313233343536373839303132333435364142434445464748494a4b4c4d4e4f50
// key128: 31323334353637383930313233343536
// clearText: The quick brown fox jumped over the lazy dog
//
// 256-bit blowfish encrypted:
// 276855ca6c0d60f7d9708210440c1072e05d078e733b34b4198d609dc2fcc2f0c30926cdef3b6d52baf6e345aa03f83e
//
// 128-bit blowfish encrypted:
// d2b5abb73208aea3790621d028afcc74d8dd65fb9ea8e666444a72523f5ecca60df79a424e2c714fa6efbafcc40bdca0 ?>
php
iv: 3132333435363738
key256: 636c6f7365776271
key128: 636c6f7365776271
clearText: blowfish
256-bit blowfish encrypted:
6a3cbb16daef0ae0
128-bit blowfish encrypted:
6a3cbb16daef0ae0
base64结果:
NmEzY2JiMTZkYWVmMGFlMA==
LockBox 3
Wvg8gWlkvHbb8WloO0jmUQ==
这是以16进制输出的字符,不是base64输出的结果。
https://www.tools4noobs.com/online_tools/decrypt/
iv是忽略不用的。
https://webnet77.net/cgi-bin/helpers/blowfish.pl
算法:blowfish-compat
PlainText:
blowfish
ascii:(98, 108, 111, 119, 102, 105, 115, 104)
Hex Byte:(54, 50, 54, 67, 54, 70, 55, 55, 54, 54, 54, 57, 55, 51, 54, 56)
Hex Str:626C6F7766697368
base64:Ymxvd2Zpc2g=
key:
closewbq
ascii:(99, 108, 111, 115, 101, 119, 98, 113)
hex byte:(54, 51, 54, 67, 54, 70, 55, 51, 54, 53, 55, 55, 54, 50, 55, 49)
hex str:636C6F7365776271
baes64:Y2xvc2V3YnE=
cipherText:
6a3cbb16daef0ae0
6A3CBB16DAEF0AE0
ECB模式下IV向量忽略不用,用PHP加密结果也是
128/256都是 6a3cbb16daef0ae0
加密后是8个字符, (106, 60, 187, 22, 218, 239, 10, 224)=8个,ascii是j<;'#$16'Zo'#$A'`,base64是ajy7FtrvCuA=
转换成16进制成了16个字符,(54, 65, 51, 67, 66, 66, 49, 54, 68, 65, 69, 70, 48, 65, 69, 48)=16个,
ascii是6a3cbb16daef0ae0,base64:NmEzY2JiMTZkYWVmMGFlMA==
6A3CBB16DAEF0AE0 ,b64: NkEzQ0JCMTZEQUVGMEFFMA==
delphi box3
加密直接是16个字符
codecMainDemo.Password := 'closewbq';
(90, 248, 60, 129, 105, 100, 188, 118, 219, 241, 105, 104, 59, 72, 230, 81) ,base64 后的字符串就是Wvg8gWlkvHbb8WloO0jmUQ==
codecMainDemo.UTF8Password
j<;Zo`
(106, 60, 187, 22, 218, 239, 10, 224, 128, 177, 62, 128, 70, 13, 232, 4)=16个
hex
6A3CBB16DAEF0AE080B13E80460DE804,也就是 (54, 65, 51, 67, 66, 66, 49, 54, 68, 65, 69, 70, 48, 65, 69, 48, 56, 48, 66, 49, 51, 69, 56, 48, 52, 54, 48, 68, 69, 56, 48, 52)
bae64:ajy7FtrvCuCAsT6ARg3oBA==
这是用字节base64的结果,推荐
base64:NkEzQ0JCMTZEQUVGMEFFMDgwQjEzRTgwNDYwREU4MDQ=
这是用16进制字符串加密的结果,不推荐。
JAVA
javax.crypto.Cipher
j<?陲鄾o?烇w?
106,60,187,22,218,239,10,224,155,111,188,21,158,239,119,220=16个
6A3CBB16DAEF0AE09B6FBC159EEF77DC=32个
base64:ajy7FtrvCuCbb7wVnu933A==
ECB填充方式是PKCS5Padding的结果
加密算法blowfish 多语言的更多相关文章
- 3DES对称加密算法(ABAP 语言实现版)
公司人事数据要求在系统间加密传输,而对接系统大部分是Java系统,要在不同的异构系统间能很好的加解密码,想到了标准的对称加密算法DES,因为是标准的算法,网络上存在大量公开用Java的DES算法,JA ...
- DES加密算法—实现(C语言)
http://www.iteye.com/topic/478024 DES(Data Encrypt Standard数据库加密标准)是迄今为止使用最广泛的加密体制. 初学信息安全的新生,一般都会被老 ...
- TEA加密算法的文件加密和解密的实现
一.TEA加密算法简介 TEA加密算法是由英国剑桥大学计算机实验室提出的一种对称分组加密算法.它采用扩散和混乱方法,对64位的明文数据块,用128位密钥分组进行加密,产生64位的密文数据块,其循环轮数 ...
- Linux Kernel(Android) 加密算法总结(一)(cipher、compress、digest)
1. Linux内核支持哪些加密算法 ? 内核支持的加密算法非常多,包含: 对称加密算法.如AES,3DES. 对称password体制的发展趋势将以分组password为重点. 分组password ...
- Linux下编译内核配置选项简介
Code maturity level options代码成熟度选项 Prompt for development and/or incomplete code/drivers 显示尚在开发中或尚未完 ...
- Linux: 介绍make menuconfig中的每个选项含义【转】
转自:http://blog.csdn.net/gaoyuanlinkconcept/article/details/8810468 介绍make menuconfig中的每个选项含义 Linux 2 ...
- 【内核】linux2.6版本内核编译配置选项(二)
目录 Linux2.6版本内核编译配置选项(一):http://infohacker.blog.51cto.com/6751239/1203633 Linux2.6版本内核编译配置选项(二):http ...
- 2018-2019-1 20189201《Linux内核原理与分析》第四周作业
1. 阴天☁️ 你说你爱烟雨微茫,雨来时你却伞遮霓裳: 你说你爱春光灿烂,阳光普照时你却孑然惆怅: 你说你爱微风轻柔,风拂发梢时你却紧闭门窗: 这便是为何你说你也深深爱我,我却眼波成霜. 2. 今日发 ...
- RSA/SHA1加密和数字签名算法在开放平台中的应用
加密算法 加密算法分为两大类:1.对称加密算法:2.非对称加密算法. 密钥个数 加密 解密 对称加密 一个 使用密钥加密 使用同一个密钥解密 非对称加密 两个,公钥和私钥 使用其中一把密钥加密 使 ...
随机推荐
- Redis学习总结之二——Redis配置文件(Windows版)
# Redis configuration file example # Note on units: when memory size is needed, it is possible to sp ...
- apue 2ed 和 unp 3ed 环境配置
网上虽然有很多配置攻略,但是依然会一头雾水,下面记录我的配置过程. OS. Ubuntu 10.04 LTS 5 首先下载APUE源代码(http://www.apuebook.com/src.tar ...
- 批量归一化batch_normalization
为了解决在深度神经网络训练初期降低梯度消失/爆炸问题,Sergey loffe和Christian Szegedy提出了使用批量归一化的技术的方案,该技术包括在每一层激活函数之前在模型里加一个操作,简 ...
- Java并发--进程与线程由来
下面是本文的目录大纲: 一.操作系统中为什么会出现进程? 二.为什么会出现线程? 三.多线程并发 一.操作系统中为什么会出现进程? 说起进程的由来,我们需要从操作系统的发展历史谈起. 也许在今天,我们 ...
- 重温CLR(十一) 枚举类型、位标志和数组
枚举类型 枚举类型(enumerated types)定义了一组"符号名称/值"配对.例如,以下Color类型定义了一组符号,每个符号都标识一种颜色: internal enum ...
- 【java基础】java集合之TreeMap
转载文章转载请注明出处:http://www.cnblogs.com/skywang12345/admin/EditPosts.aspx?postid=3310928 第1部分 TreeMap介绍 T ...
- 动态添加 items to PopupMenu
引用自http://stackoverflow.com/questions/10175140/adding-items-to-popupmenu DevExpress.XtraBars.BarMana ...
- phoenxi elixir 框架几个方便的命令
1. 已有命令 mix app.start # Starts all registered apps mix app.tree # Prints the application tree mix ar ...
- 【转】VC 模式对话框和非模式对话框的创建,销毁和区别
原文网址:http://blog.csdn.net/mycaibo/article/details/6002151 VC 模式对话框和非模式对话框的创建,销毁和区别 在WIN32中,模式对话框的创 ...
- RK3288 双屏异显时,触摸屏(USB接口)无反应
系统版本:RK3288 android 5.1 设备同时有两个lcd,主屏是mipi接口,带有触摸屏,触摸屏是usb接口,副屏是hdmi接口,没有触摸屏,正常情况下,两个lcd显示相同内容,触摸屏一切 ...