相关疑难解决方法(0)

DES发送和接收模式,用于DESFire身份验证

我正在尝试使用我的Android应用程序验证DESFire卡.我使用此链接中的示例来解析我从卡中获得的字节.为此,我在解密中排除了填充(在下面说明),因为DESFire文档指出了它.此外,如果我不这样做,解密将返回7个字节,输入8个字节.以下是我使用的DES和TripleDES解密函数:

public static byte[] TripleDES_Decrypt(byte[] data,byte[][] keys)
{
    int i;
    byte[] tmp = new byte[data.length];
    byte[] bloc = new byte[8];

    K = generateSubKeys(keys[0]);
    K1 = generateSubKeys(keys[1]);
    K2 = generateSubKeys(keys[2]);

    for (i = 0; i < data.length; i++) {
        if (i > 0 && i % 8 == 0) {
            bloc = encrypt64Bloc(bloc,K2, true);
            bloc = encrypt64Bloc(bloc,K1, false);
            bloc = encrypt64Bloc(bloc,K, true);
            System.arraycopy(bloc, 0, tmp, i - 8, bloc.length);
        }
        if (i < data.length)
            bloc[i % 8] = data[i]; …
Run Code Online (Sandbox Code Playgroud)

java android des nfc mifare

9
推荐指数
1
解决办法
7435
查看次数

标签 统计

android ×1

des ×1

java ×1

mifare ×1

nfc ×1