Edit report at http://bugs.php.net/bug.php?id=53789&edit=1
ID: 53789 Updated by: il...@php.net Reported by: richard at blueapex dot co dot uk Summary: Setting session.hash_function doesn't change hash function used. -Status: Open +Status: Wont fix Type: Bug Package: Session related Operating System: Freebsd 8.1 PHP Version: 5.3.5 Block user comment: N Private report: N New Comment: I think this is one of those situations where hash extension would need to be compiled as part of "core php" for this feature to work. Previous Comments: ------------------------------------------------------------------------ [2011-02-08 21:34:54] henno at schooljan dot nl It does work when compiling in both hash and session modules into the main PHP executable (by use of --enable-hash and --enable-session on the configure line). The FreeBSD Ports strategy is to provide a slim PHP base package with a lot of extra modules as extra packages to choose. Fine of course, but apparently the has_function option breaks when one of the relevant modules are externally loaded. I found this out because I also run a Gentoo machine where this bug does not manifest itself, and there the package strategy is to compile everything into one big PHP executable. So a quick temporary workaround for FreeBSD users is adding both --enable-hash and --enable-session in the FreeBSD port Makefile for lang/php5 (and disable the external modules to prevent 'already loaded' warnings). To summarize: Steps to reproduce: ------------------- Use either hash or session modules as external loadable module, setting reverts to 0 when choosing a hash algo. Workaround: ----------- Compile both hash and session modules into the main PHP executable. ------------------------------------------------------------------------ [2011-02-01 15:11:08] richard at blueapex dot co dot uk I have the hash extension enabled. Doing print_r(hash_algos()) gives a fair few hashes. I'm using hash('SHA512', $foo) for encrypting passwords so it defiantly is available to PHP. ------------------------------------------------------------------------ [2011-02-01 14:39:16] il...@php.net Do you have the hash extension enabled? Without that extension, hashing algorithms other than md5/sha1 will not be available. ------------------------------------------------------------------------ [2011-01-30 14:07:14] datahell at elxis dot org I face the same problem on PHP 5.2.5 (x64) on my local installation Windows Vista 64bit. ------------------------------------------------------------------------ [2011-01-19 14:23:34] richard at blueapex dot co dot uk Description: ------------ This may be an apache bug, though I'll start with putting it down as php. There is a similar bug: Bug #49469 submitted in 2009 with advice try the latest snapshot, that was version 5.3.0 and I'm using version 5.3.5 so assuming that advice isn't valid and the bug still exists. Setting session.hash_function variable in php.ini doesn't change the value used to generate the hash function. I've tried sha512, sha1, whirlpool. All of these don't change the hash delivered to the browser (PHPSESSID) and still the standard md5() hash is used. All the hash algos tried are on the system when the output of hash_algos() is examined. Specifying 1 does make the system use SHA1 to generate the session hash. ############################## Revelant. php.ini session.save_handler = files session.use_cookies = 1 session.use_only_cookies = 1 session.name = PHPSESSID session.auto_start = 0 session.cookie_lifetime = 0 session.cookie_path = / session.cookie_domain = session.cookie_httponly = session.serialize_handler = php session.gc_probability = 1 session.gc_divisor = 1000 session.gc_maxlifetime = 1440 session.bug_compat_42 = On session.bug_compat_warn = On session.referer_check = session.entropy_length = 0 session.entropy_file = session.cache_limiter = nocache session.cache_expire = 180 session.use_trans_sid = 0 session.hash_function = sha512 session.hash_bits_per_character = 5 url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry" Test script: --------------- session_start() Expected result: ---------------- sha512 generated PHPSESSID Actual result: -------------- md5 generated PHPSESSID ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=53789&edit=1