tonicforhealth / dukpt
每笔交易生成的唯一密钥(ANSI X9.24 第1部分)
v2.0.3
2017-12-12 12:26 UTC
Requires
- php: ^5.5 || ^7.0
- ext-openssl: *
- lib-openssl: *
Requires (Dev)
- phpunit/php-invoker: ^1.1
- phpunit/phpunit: ^4.8|^5.3
This package is not auto-updated.
Last update: 2024-09-15 02:46:26 UTC
README
在密码学中,每笔交易生成的唯一密钥(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?
文章
- "如何使用 DUKPT 解密磁卡数据" - Travis Hoffman