加密算法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.非对称加密算法. 密钥个数 加密 解密 对称加密 一个 使用密钥加密 使用同一个密钥解密 非对称加密 两个,公钥和私钥 使用其中一把密钥加密 使 ...
随机推荐
- 【测试工具】tcpdump + wireshark 抓包实践
Tcpdump + Wireshark 抓包实践 工具介绍 Tcpdump 看到dump大家应该有所意识吧,就是下载数据,抓数据.tcpdump是linux下的一个抓取tcp包的命令 Usage: t ...
- 快速排序的partition版本实现
int partition(int arr[], int low, int high) { int pivot = arr[high]; int i = low-1; for (int j = low ...
- CodeForces - 321E:Ciel and Gondolas (四边形不等式优化DP)
题意:N个人排成一行,分成K组,要求每组的不和谐值之和最小. 思路:开始以为是斜率优化DP,但是每个区间的值其实已经知道了,即是没有和下标有关的未知数了,所以没必要用斜率. 四边形优化. dp[i][ ...
- onerror="javascript:this.src='images/defaultUpload.png';"【容易导致死循环报错】
当无法找到默认图片时,onerror="javascript:this.src='images/defaultUpload.png';"容易导致死循环报错
- three.js中点生成矩阵方法
正常情况用threejs 点生成matrix4,方法为: 例如生成饶Y轴旋转的矩阵我们要的结果为: [cos, 0, -sin, 0, 0, 1, 0, 0, sin, 0, cos, ...
- 获取css最终样式
function getStyle(obj, attr) { if (obj.currentStyle) { return obj.currentStyle[attr]; } else { retur ...
- 体验 k8s 的核心功能
快速体验 k8s 的核心功能:应用部署.访问.Scale Up/Down 以及滚动更新 https://yq.aliyun.com/articles/337209?spm=a2c4e.11153940 ...
- BestCoder Round #1 第二题 项目管理
// 第二题 我记得很久很久很久以前看过这样的题目,忘记是哪的区域赛了 // 记得有人说和节点度数有关,我记不清了,反正当时完全不懂 // 然后我想了想,估计就是更新节点度数有关,YY出来可能只要更新 ...
- eclipse adt调试出错,不能产出apk问题
The connection to adb is down, and a severe error has occured http://blog.csdn.net/h7870181/article/ ...
- 【转】Linux(BASH)命令搜索机制
原文网址:http://www.mike.org.cn/articles/linux-linux-bash-command-search-mechanism/ 转自:Eric Cheung: Linu ...