

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 转换 PIN 数据
<a name="translate-pin-data"></a>

转换 PIN 数据功能用于将加密的 PIN 数据从一组密钥转换为另一组密钥，而加密数据不会离开 HSM。它用于 P2PE 加密，其中工作密钥应该更改，但处理系统不需要或不允许解密数据。主要输入是加密数据、用于加密数据的加密密钥以及用于生成输入值的参数。另一组输入是请求的输出参数，例如用于加密输出的密钥和用于创建该输出的参数。主要输出是新加密的数据集以及用于生成该数据集的参数。

**注意**  
为了符合 PCI 标准，传入和传出的 PrimaryAccountNumber 值必须匹配。不允许将 PIN 从一个 PAN 转换为另一个 PAN。

**Topics**
+ [从 PEK 到 DUKPT 的 PIN](#crypto-ops-pindata.pektodukpt)
+ [从 PEK 到 PEK 的 PIN](#crypto-ops-pindata.pektopek)

## 从 PEK 到 DUKPT 的 PIN
<a name="crypto-ops-pindata.pektodukpt"></a>

**Example**  
在此示例中，我们将使用 [DUKPT 将 AES ISO 4 PIN 块中的 PIN 转换为使用 ISO 0 PIN 块的 PEK TD](terminology.md#terms.dukpt) ES 加密。这种情况很常见，即支付终端对ISO 4中的密码进行加密，如果下一个连接还不支持AES，则可以将其转换回TDES进行下游处理。  

```
$ aws payment-cryptography-data translate-pin-data --encrypted-pin-block "AC17DC148BDA645E" --outgoing-translation-attributes=IsoFormat0='{PrimaryAccountNumber=171234567890123}' --outgoing-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt  --incoming-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/4pmyquwjs3yj4vwe --incoming-translation-attributes IsoFormat4="{PrimaryAccountNumber=171234567890123}" --incoming-dukpt-attributes KeySerialNumber="FFFF9876543210E00008"  
```

```
    {
            "PinBlock": "1F4209C670E49F83E75CC72E81B787D9",
            "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt",
            "KeyCheckValue": "7CC9E2"
        }
```

## 从 PEK 到 PEK 的 PIN
<a name="crypto-ops-pindata.pektopek"></a>

**Example**  
在此示例中，我们将使用一个 PEK（PIN 加密密钥）加密的 PIN 转换为另一个 PEK。这通常用于在使用不同加密密钥的不同系统或合作伙伴之间路由交易，同时通过在整个过程中保持 PIN 加密来保持 PCI PIN 合规性。在本示例中，两个密钥都使用 TDES 3KEY 加密，但有多种选项可供选择，包括 AES ISO-4 到 TDES ISO-0、DUKPT 到 PEK 或 PEK。 AS2805   

```
$ aws payment-cryptography-data translate-pin-data --encrypted-pin-block "AC17DC148BDA645E" \
    --incoming-translation-attributes IsoFormat0='{PrimaryAccountNumber=171234567890123}' \
    --incoming-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt \
    --outgoing-translation-attributes IsoFormat0='{PrimaryAccountNumber=171234567890123}' \
    --outgoing-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/alsuwfxug3pgy6xh
```

```
{
    "PinBlock": "E8F2A6C4D1B93E7F",
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/alsuwfxug3pgy6xh",
    "KeyCheckValue": "9A325B"
}
```
现在，输出 PIN 块已在第二个 PEK 下进行加密，可以安全地传输到保存相应密钥的下游系统。