在 Android 台设备上使用 JCESecurityModule

Using JCESecurityModule on Android device

在 Android 环境中尝试执行加密和解密过程时,我有以下日志。

com.s.sdk.security.SMException: Error loading Local Master Keys, file: "/cfg/lmktest.lmk" does not exist. Please specify a valid LMK file, or rebuild a new one. 09-21 11:56:31.792 16182-16182/com.mpos.sdk W/System.err: at com.s.sdk.security.jceadapter.JCESecurityModule.init(JCESecurityModule.java:1785) 09-21 11:56:31.792 16182-16182/com.mpos.sdk W/System.err: at com.s.sdk.security.jceadapter.JCESecurityModule.(JCESecurityModule.java:159)

我之所以要用JPOS是因为我要进行一笔金融交易,用来打包我的信息。

对于数据的加密和解密,我将利用这个在其他平台上运行良好的JCESecurityModule,但在android OS.

注意: 我的 android 工作室中的文件位置是 app/cfg/test.lmk

我能够从 github 上的 JPOS-master 找到这个文件jPOS-master\jPOS-master\jpos\src\test\resources\org\jpos\security

lmk-test

曾经这样使用过 JCESecurityModule sm = new JCESecurityModule("app/cfg/test.lmk");

我也试过重建 lmk 文件,使用下面的方法

public JCESecurityModule (String lmkFile) throws SMException
    {
        init(null, lmkFile, true);
    }

可以在 JCESecurityModule class (JPOS) 中找到 在加载 lmk 文件时仍然有同样的问题 谢谢

为了完整起见,jPOS 的 Google 小组也提出了这个问题,并在那里进行了讨论。 https://groups.google.com/forum/#!topic/jpos-users/X3r_PX7lgd4

加密是由连接到移动设备 phone 以执行交易的设备完成的,但设备制造商实际上这样做是为了提供您正在规避的端到端加密。您不需要设备中的 jpos。您需要在集中部署的服务器上使用真正的 HSM。

来自 维克多·萨拉曼 在 JPOS 用户 google 组 https://groups.google.com/forum/#!topic/jpos-users/X3r_PX7lgd4

但您仍然可以使用其他模块而不是 JCESecurityModule 进行加密和解密(如果问题仍然存在)。例如使用 SunJCE