Yapılandırma
Varsayılan olarak, Laravel verileri karıştırırken bcrypt karma sürücüsünü kullanır. Ancak argon ve argon2id dahil olmak üzere birkaç başka karma sürücüsü desteklenir. Uygulamanızın karma sürücüsünü HASH_DRIVER ortam değişkenini kullanarak belirtebilirsiniz. Ancak, Laravel'in karma sürücü seçeneklerinin tamamını özelleştirmek istiyorsanız, config
ublish Artisan komutunu kullanarak tam karma yapılandırma dosyasını yayımlamalısınız:php artisan config:publish hashingŞifreleri Karıştırmak
Parolayı Hash cephesinde make metodunu çağırarak karmaşıklaştırabilirsiniz :
<?php
namespace App\Http\Controllers;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
class RokitoController extends Controller
{
/**
* Update the password for the user.
*/
public function update(Request $request): RedirectResponse
{
// Validate the new password length...
$request->user()->fill([
'password' => Hash::make($request->newPassword)
])->save();
return redirect('/profile');
}
}Bcrypt İş Faktörünün AyarlanmasıBcrypt algoritmasını kullanıyorsanız, make metodu algoritmanın iş faktörünü rounds seçeneği kullanılarak yönetmenize olanak tanır; ancak Laravel tarafından yönetilen varsayılan iş faktörü çoğu uygulama için kabul edilebilirdir:
$hashed = Hash::make('rokito-password', [
'rounds' => 12,
]);Argon2 İş Faktörünün AyarlanmasıArgon2 algoritmasını kullanıyorsanız, make yöntemi algoritmanın iş faktörünü bellek, zaman ve iş parçacığı seçeneklerini kullanarak yönetmenize olanak tanır; ancak Laravel tarafından yönetilen varsayılan değerler çoğu uygulama için kabul edilebilirdir:
$hashed = Hash::make('rokito-password', [
'memory' => 1024,
'time' => 2,
'threads' => 2,
]);Bir Parolanın Bir Karma Değerle Eşleştiğini DoğrulamaHash cephesi tarafından sağlanan check yöntemi, verilen düz metin dizesinin verilen bir karmaya karşılık geldiğini doğrulamanıza olanak tanır:
if (Hash::check('rokito-text', $hashedPassword)) {
// The passwords match...
}Bir Parolanın Tekrar Yazılması Gerekip Gerekmediğini BelirlemeHash cephesi tarafından sağlanan needsRehash yöntemi, parola karıştırıldıktan sonra karma tarafından kullanılan iş faktörünün değişip değişmediğini belirlemenize olanak tanır. Bazı uygulamalar, uygulamanın kimlik doğrulama süreci sırasında bu kontrolü gerçekleştirmeyi seçer:
if (Hash::needsRehash($hashed)) {
$hashed = Hash::make('rokito-text');
}Karma Algoritma DoğrulamasıKarma algoritma manipülasyonunu önlemek için, Laravel'in Hash::check yöntemi önce verilen karmanın uygulamanın seçili karma algoritması kullanılarak oluşturulduğunu doğrulayacaktır. Algoritmalar farklıysa, bir RuntimeException istisnası atılacaktır. Bu, karma algoritmasının değişmesinin beklenmediği ve farklı algoritmaların kötü amaçlı bir saldırının göstergesi olabileceği çoğu uygulama için beklenen davranıştır. Ancak, uygulamanızda birden fazla karma algoritmasını desteklemeniz gerekiyorsa, örneğin bir algoritmadan diğerine geçiş yaparken, HASH_VERIFY ortam değişkenini false olarak ayarlayarak karma algoritması doğrulamasını devre dışı bırakabilirsiniz:
HASH_VERIFY=false