3v4l.org

run code in 300+ PHP versions simultaneously
<?php function rehashPassword($password, $hash) { if (password_needs_rehash($hash, PASSWORD_BCRYPT,['cost' => 12])) { // 計算コスト12で再ハッシュ化の必要があるかチェック echo 'パスワードを再ハッシュするよ!' . "\n"; $hash = password_hash($password, PASSWORD_BCRYPT, ['cost' => 12]); // 計算コスト12で再度ハッシュ化する // DBに保存しなおしとかそういう処理 } else { echo 'パスワードの再ハッシュは不要だよ!' . "\n"; } return $hash; } $password = 'GoemonLets5'; // パスワード $hash = password_hash($password, PASSWORD_BCRYPT, ['cost' => 11]); // 計算コスト11でハッシュ化する $hash = rehashPassword($password, $hash); // コスト11で暗号化されたハッシュに対してコスト12で暗合されているかチェックをかける $hash = rehashPassword($password, $hash); // 直前の処理でハッシュはコスト12に再計算されているので、再ハッシュは不要になる

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
7.3.00.0070.38016.79
7.2.130.0100.39316.93
7.2.120.0100.38416.70
7.2.110.0030.38716.99
7.2.100.0030.38017.04
7.2.90.0000.38716.88
7.2.80.0200.38116.74
7.2.70.0100.37216.75
7.2.60.0080.37516.86
7.2.50.0030.38017.02
7.2.40.0070.36516.89
7.2.30.0030.36916.85
7.2.20.0000.38116.89
7.2.10.0170.36716.86
7.2.00.0080.38018.03
7.1.250.0100.37715.78
7.1.240.0000.39215.79
7.1.230.0130.36815.84
7.1.220.0030.38015.71
7.1.210.0130.38215.68
7.1.200.0080.36815.76
7.1.190.0070.37615.81
7.1.180.0030.37915.88
7.1.170.0070.37815.64
7.1.160.0100.36715.54
7.1.150.0030.38215.68
7.1.140.0130.37415.79
7.1.130.0030.38415.63
7.1.120.0000.38915.88
7.1.110.0030.38215.67
7.1.100.0070.37716.91
7.1.90.0100.37315.74
7.1.80.0070.37615.71
7.1.70.0070.39616.47
7.1.60.0030.40917.62
7.1.50.0150.39116.24
7.1.40.0070.37715.56
7.1.30.0030.37615.72
7.1.20.0100.36715.65
7.1.10.0060.37515.81
7.1.00.0070.37119.17
7.0.330.0000.38815.09
7.0.320.0070.37415.39
7.0.310.0030.38015.15
7.0.300.0070.37315.45
7.0.290.0070.38315.27
7.0.280.0070.38015.33
7.0.270.0030.38115.21
7.0.260.0170.37215.40
7.0.250.0130.36615.52
7.0.240.0000.37515.21
7.0.230.0030.38015.55
7.0.220.0030.37815.08
7.0.210.0100.37615.36
7.0.200.0030.37815.86
7.0.190.0000.37515.34
7.0.180.0100.36415.34
7.0.170.0000.37715.24
7.0.160.0100.36915.26
7.0.150.0070.37015.47
7.0.140.0030.41118.82
7.0.130.0070.38715.38
7.0.120.0070.38115.50
7.0.110.0030.36515.35
7.0.100.0130.44717.68
7.0.90.0050.43017.66
7.0.80.0120.40317.75
7.0.70.0080.40217.63
7.0.60.0080.42117.63
7.0.50.0000.36717.82
7.0.40.0080.40916.77
7.0.30.0050.41516.79
7.0.20.0030.42016.73
7.0.10.0070.36116.66
7.0.00.0030.42216.74
5.6.380.0030.38114.51
5.6.370.0100.37114.07
5.6.360.0070.37714.36
5.6.350.0070.37914.29
5.6.340.0030.37914.27
5.6.330.0070.38714.41
5.6.320.0030.37814.48
5.6.310.0000.37514.04
5.6.300.0030.37914.21
5.6.290.0000.37814.23
5.6.280.0050.42117.64
5.6.270.0030.38614.51
5.6.260.0030.37714.09
5.6.250.0050.39217.26
5.6.240.0030.39117.46
5.6.230.0050.38917.49
5.6.220.0050.40817.34
5.6.210.0080.40417.27
5.6.200.0080.43717.64
5.6.190.0050.41717.56
5.6.180.0080.36217.63
5.6.170.0050.42917.74
5.6.160.0030.41517.57
5.6.150.0020.40617.63
5.6.140.0020.41517.56
5.6.130.0050.39617.87
5.6.120.0070.43217.51
5.6.110.0080.41317.64
5.6.100.0120.40517.58
5.6.90.0030.39217.58
5.6.80.0080.42417.26
5.6.70.0030.40917.26
5.6.60.0050.36517.28
5.6.50.0050.38217.18
5.6.40.0120.37017.34
5.6.30.0070.35317.23
5.6.20.0050.35517.31
5.6.10.0030.38817.46
5.6.00.0030.35617.39
5.5.380.0020.40915.89
5.5.370.0080.40315.82
5.5.360.0050.44715.85
5.5.350.0030.39915.75
5.5.340.0020.43516.14
5.5.330.0030.43715.85
5.5.320.0080.41416.11
5.5.310.0070.39215.96
5.5.300.0020.36416.10
5.5.290.0080.40716.05
5.5.280.0080.36316.13
5.5.270.0050.42416.07
5.5.260.0030.42016.09
5.5.250.0050.41415.73
5.5.240.0070.37515.57
5.5.230.0030.40215.60
5.5.220.0030.39015.69
5.5.210.0020.37915.70
5.5.200.0000.40115.66
5.5.190.0030.35815.55
5.5.180.0030.36715.52
5.5.170.0000.37111.22
5.5.160.0030.35015.54
5.5.150.0030.35415.73
5.5.140.0050.35015.61
5.5.130.0070.38415.54
5.5.120.0080.42015.75
5.5.110.0050.39915.60
5.5.100.0000.37815.46
5.5.90.0100.40815.46
5.5.80.0100.39315.52
5.5.70.0120.41215.53
5.5.60.0020.42215.59
5.5.50.0050.40415.56
5.5.40.0070.42615.56
5.5.30.0050.41015.58
5.5.20.0030.42615.46
5.5.10.0070.42115.47
5.5.00.0170.35715.44
5.4.450.0000.04715.14
5.4.440.0030.04515.11
5.4.430.0060.02515.02
5.4.420.0070.02715.09
5.4.410.0060.04115.25
5.4.400.0030.04515.04
5.4.390.0000.04714.90
5.4.380.0020.02514.82
5.4.370.0030.01815.01
5.4.360.0030.01815.06
5.4.350.0050.02214.93
5.4.340.0070.01514.92
5.4.330.0040.00410.51
5.4.320.0020.02014.81
5.4.310.0080.01314.82
5.4.300.0070.02714.89
5.4.290.0000.04415.05
5.4.280.0030.02214.94
5.4.270.0080.02115.00
5.4.260.0050.02614.91
5.4.250.0050.03514.76
5.4.240.0050.03814.90
5.4.230.0020.04014.93
5.4.220.0050.02014.91
5.4.210.0020.02214.86
5.4.200.0050.04015.00
5.4.190.0070.01815.03
5.4.180.0070.03814.87
5.4.170.0020.02714.92
5.4.160.0080.03814.81
5.4.150.0040.04314.92
5.4.140.0050.02713.54
5.4.130.0050.04413.71
5.4.120.0050.02513.69
5.4.110.0010.04413.47
5.4.100.0020.03713.67
5.4.90.0070.01813.77
5.4.80.0030.02613.64
5.4.70.0020.03913.70
5.4.60.0080.03713.53
5.4.50.0070.04113.59
5.4.40.0070.04213.62
5.4.30.0070.03713.53
5.4.20.0070.03513.46
5.4.10.0020.02413.55
5.4.00.0090.03813.28
5.3.290.0030.02112.59
5.3.280.0080.03512.56
5.3.270.0050.01912.59
5.3.260.0000.02512.61
5.3.250.0040.03112.54
5.3.240.0080.04112.55
5.3.230.0050.03412.57
5.3.220.0020.03612.56
5.3.210.0070.02812.58
5.3.200.0080.02712.54
5.3.190.0080.04112.52
5.3.180.0070.03712.50
5.3.170.0020.03712.51
5.3.160.0060.03012.54
5.3.150.0070.03612.55
5.3.140.0050.02412.52
5.3.130.0080.01812.53
5.3.120.0050.04012.52
5.3.110.0060.03512.52
5.3.100.0040.04212.28
5.3.90.0000.03512.24
5.3.80.0030.04112.31
5.3.70.0090.03712.22
5.3.60.0070.04212.24
5.3.50.0030.04112.25
5.3.40.0080.03612.21
5.3.30.0050.04012.23
5.3.20.0120.03212.03
5.3.10.0030.03612.09
5.3.00.0070.03512.01
5.2.170.0100.02911.01
5.2.160.0080.02511.01
5.2.150.0050.02711.01
5.2.140.0060.02111.01
5.2.130.0050.02811.01
5.2.120.0070.02311.01
5.2.110.0010.02111.01
5.2.100.0000.03411.01
5.2.90.0060.03011.01
5.2.80.0070.02111.01
5.2.70.0000.03111.01
5.2.60.0090.02711.01
5.2.50.0030.01811.01
5.2.40.0050.02811.01
5.2.30.0020.02711.01
5.2.20.0060.03311.01
5.2.10.0070.03211.01
5.2.00.0030.02711.01
5.1.60.0060.02811.01
5.1.50.0070.01911.01
5.1.40.0040.02211.01
5.1.30.0050.02211.01
5.1.20.0020.02811.01
5.1.10.0020.03011.01
5.1.00.0020.02111.01
5.0.50.0050.01811.01
5.0.40.0000.02711.01
5.0.30.0050.03311.01
5.0.20.0020.02511.01
5.0.10.0050.02211.01
5.0.00.0030.03511.01
4.4.90.0020.00911.01
4.4.80.0020.01011.01
4.4.70.0010.01311.01
4.4.60.0020.02011.01
4.4.50.0050.01811.01
4.4.40.0000.03011.01
4.4.30.0020.02011.01
4.4.20.0020.01511.01
4.4.10.0040.01511.01
4.4.00.0050.02711.01
4.3.110.0000.01411.01
4.3.100.0020.01511.01
4.3.90.0030.01811.01
4.3.80.0040.01711.01
4.3.70.0000.02011.01
4.3.60.0020.02111.01
4.3.50.0030.00811.01
4.3.40.0030.01211.01
4.3.30.0020.01511.01
4.3.20.0020.00811.01
4.3.10.0010.01011.01
4.3.00.0020.01811.01

preferences:
45.88 ms | 400 KiB | 5 Q