每笔交易生成的唯一密钥(ANSI X9.24 第1部分)

v2.0.3 2017-12-12 12:26 UTC

This package is not auto-updated.

Last update: 2024-09-15 02:46:26 UTC


README

License Packagist Build Status Code Coverage Scrutinizer Code Quality SensioLabsInsight

在密码学中,每笔交易生成的唯一密钥(DUKPT)是一种密钥管理方案,其中每笔交易使用一个从固定密钥派生的唯一密钥。因此,如果派生密钥遭到泄露,未来和过去的交易数据仍然受到保护,因为下一个或上一个密钥无法轻易确定。DUKPT 在 ANSI X9.24 第1部分中规定。

使用 Composer 安装Composer

$ composer require tonicforhealth/dukpt

使用方法

<?php

use TonicForHealth\DUKPT\Device\PinEncryptionDevice;
use TonicForHealth\DUKPT\DUKPTFactory;

$cipherText = '160954FE1071D30C5CF260C5AC48EB5FBEFE37B32033E3B7EF693F8C6AB1BBD6276446FB3689728B926D923CD9ECCD522B6DE5850FD9AB2D7976D943C12CDC947E023098CAAE4F6D';

$device = new PinEncryptionDevice(new DUKPTFactory());
$device->load('0123456789ABCDEFFEDCBA9876543210', 'FFFF9876543210E00008');

$plainText = $device->decrypt($cipherText); // %B4124939999999990^TEST/TESTCARD^19129015432139614567891234567890?

文章