在字符串上使用md5始终生成字母数字加密结果,即:无符号.
但是,当我使用php crypt()函数,特别是CRYPT_MD5(并且它已打开,我已检查过)时,它返回的假定md5哈希看起来不像md5哈希.
例如:
如果我md5字符串'密码',我得到:
$pass = md5('password');
echo $pass;
//5f4dcc3b5aa765d61d8327deb882cf99
Run Code Online (Sandbox Code Playgroud)
如果我使用CRYPT_MD5,它由'$ 1 $'前缀表示,'$'后缀表示盐为'salt':
$pass = crypt('password', '$1$salt$');
echo $pass;
//$1$salt$qJH7.N4xYta3aEG/dfqo/0
Run Code Online (Sandbox Code Playgroud)
现在,使用的算法和盐按预期显示,'$ 1 $'表示使用了CRYPT_MD5,盐在$符号之间显示为'盐'.
但是..在最后一个$符号之后的哈希密码看起来不像md5 ......它有斜线和全停.
为什么这样哈希呢?这不是真正的md5吗?
请问你是否需要我澄清这些.啊.
我很难过,希望我刚做了一件容易修理的蠢事.
我传入一个充满XML的字符串,即'XMLstring'.我想获取其中一个元素并在控制台上的"name = value"中打印子节点.问题是控制台不断打印垃圾以及我无法解决的元素名称.
无论如何,这段代码:
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
InputSource is = new InputSource();
is.setCharacterStream(new StringReader(XMLstring));
Document doc = db.parse(is);
NodeList nodes = doc.getElementsByTagName("client-details");
Node node = nodes.item(0);
NodeList client_details = node.getChildNodes();
for (int i = 0; i < client_details.getLength(); i++) {
System.out.println(client_details.item(i).getNodeName()+" = "+getTextContents(client_details.item(i)));
}
}
catch (Exception e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
给我以下内容:
#text =
testing-mode = false
#text =
name = testman
#text =
age = 30
Run Code Online (Sandbox Code Playgroud)
为什么打印"#text ="?我怎么摆脱它?
如果有帮助,我正在使用NetBeans.
刚刚讨论了使用PostgreSQL而不是MySQL的优点,反之亦然.有没有任何实际经验,有正当理由使用其中一个?
有些人说Postgre在安全方面更好,而MySQL变得越来越丰富......我不知道该怎么做.
我正在重构一些工作代码,我遇到了一些以"@"符号为前缀的函数调用.据我了解,如果调用失败,这是为了逃避PHP错误报告.
这种类型的东西是好的做法吗?我理解开发环境中的基本原理,但是当网站被推向生产时,不应该正确处理所有错误而不是仅仅进行转义?
因此,使用此符号意味着开发人员必须在稍后阶段对代码进行排序,以删除所有错误报告转义.
我不确定是否删除这些符号,只是找到一种更好的方法来处理潜在的错误.
为清楚起见,使用它的函数是本机PHP fsockopen()函数.
我正在加载一个表单.叠加层具有单独的控制器和对调用叠加层的页面的操作.
在表单提交上,如果成功,我只想重新加载从中加载叠加层的引用页面.我可以加载引用页面,但它会将内容放在叠加层中.
header("Location: www.example.com", true, 302);
Run Code Online (Sandbox Code Playgroud)
不起作用.
像这样使用URL帮助器:
$url = $_SERVER['HTTP_REFERER'];
redirect($url);
Run Code Online (Sandbox Code Playgroud)
也行不通.每次在叠加层中加载.我很难过.
我正在构建一个frameset由其他站点加载到的网站(其中父站点的域名不同).
这适用于所有浏览器(包括IE6),IE7除外.它根本没有注册会话,根本不起作用.
网站是使用LAMP,MySQL 5和PHP 5实现的 - 是的,可能与实际问题无关,但仍值得一提.
有什么建议?
可能重复:
在PHP中,如何更改数组元素的键?
我正在阅读一堆多维数组,在挖掘它们时,我注意到有些键是不正确的.
对于每个不正确的密钥,我只想将其更改为零:
从:
$array['bad_value']
Run Code Online (Sandbox Code Playgroud)
至:
$array[0]
Run Code Online (Sandbox Code Playgroud)
我想保留数组元素的值,我只想更改单个键的内容.建议表示赞赏.
干杯
为什么我不能拥有这个?我的意思是它会节省代表声明:
int X=delegate int(){...};
Run Code Online (Sandbox Code Playgroud)
我知道可以这样做:
delegate int IntDelegate();
...
IntDelegate del=delegate(){return 25;};
int X=del();
Run Code Online (Sandbox Code Playgroud) 我刚刚在PHP LAMP角色中开始了另一项新工作,而且我再次遇到了陡峭的学习曲线.
像PHP一样伟大和有用,我开始觉得它有点过于灵活.与具有单一接受的Rails框架的Ruby不同,我们PHP开发人员有很多可能性被抛到我们身上,例如代码点火器,zend,cakephp和kohana.
各种博客工具也可能发挥作用,如WordPress,Drupal,Joomal等.
然后我们有像Smarty这样的表示抽象框架.名单还在继续.
似乎PHP作为一种语言为开发人员提供了如此大的自由,以不同的方式做事情,以至于很难保持一致性或"开始运行",所以当你开始在一个新的组织时.
由于我的经验主要是基于PHP,我想知道其他语言的开发人员是否能获得这么多?还是我离开这个?
我正在接受屏幕上显示的Feed中的字符串,可能包含也可能不包含我要过滤掉的垃圾.我根本不想过滤普通符号.
我想删除的值如下所示:
只有这样我才想要删除.相关技术是PHP.
建议表示赞赏.