⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.java

📁 pos机交易实现源代码 含金融卡交易8583协议实现 开发环境:linux 典型应用:嵌入系统开发 仅供参考
💻 JAVA
字号:
/* * Copyright (c) 2000 jPOS.org.  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in *    the documentation and/or other materials provided with the *    distribution. * * 3. The end-user documentation included with the redistribution, *    if any, must include the following acknowledgment: *    "This product includes software developed by the jPOS project  *    (http://www.jpos.org/)". Alternately, this acknowledgment may  *    appear in the software itself, if and wherever such third-party  *    acknowledgments normally appear. * * 4. The names "jPOS" and "jPOS.org" must not be used to endorse  *    or promote products derived from this software without prior  *    written permission. For written permission, please contact  *    license@jpos.org. * * 5. Products derived from this software may not be called "jPOS", *    nor may "jPOS" appear in their name, without prior written *    permission of the jPOS project. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.   * IN NO EVENT SHALL THE JPOS PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR  * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE  * POSSIBILITY OF SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the jPOS Project.  For more * information please see <http://www.jpos.org/>. */package  smadapter;import  org.jpos.util.Logger;import  org.jpos.util.SimpleLogListener;import  org.jpos.security.*;import  org.jpos.security.jceadapter.JCESecurityModule;import  java.util.Properties;import  org.jpos.core.Configuration;import  org.jpos.core.SimpleConfiguration;import  org.jpos.iso.ISOUtil;/** * A class that demonstrates the use of the SMAdapter interface, using * JCE Security Module. * @author Hani S. Kirollos * @version $Revision: 1.1 $ $Date: 2002/04/18 01:59:17 $ */public class Test {    public static void main (String args[]) {        try {            Logger logger = new Logger();            logger.addListener(new SimpleLogListener(System.out));            Properties cfgProps = new Properties();            //cfgProps.setProperty("jce", "org.bouncycastle.jce.provider.BouncyCastleProvider");            cfgProps.setProperty("lmk", "src/ext-examples/smadapter/lmk");            Configuration cfg = new SimpleConfiguration(cfgProps);            SMAdapter sm = new JCESecurityModule(cfg, logger, "security-module");            /*                An acquirer scenario            */            /*                The Zone Master Key (typically stored in a clear database)                Used for exchanging keys with the issuer, in our scenario.            */            SecureDESKey zmk = new SecureDESKey(sm.LENGTH_DES3_2KEY, sm.TYPE_ZMK,                "CB3EC0FF092D3786167566882685307B", "5B3368");            /*                The exchanged Zone PIN Key (typically exchanged using ANSI X9.17,                since we didn't generate the ZPK, then we are simulating the role                of Party B in a point-to-point environment. See ANSI X9.17)                Generated by the issuer and sent to us, in our scenario.            */            byte[] zpkUnderZmk = ISOUtil.hex2byte("28E054ABD112F1BC");            /*                The Zone PIN Key needs to be imported (typically done by                translating ZPK from encryption under ZMK to encryption under LMK)                Used for sending encrypted PINs to the issuer, in our scenario.            */            SecureDESKey zpk = sm.importKey(sm.LENGTH_DES, sm.TYPE_ZPK, zpkUnderZmk, zmk, true);            /*                The Terminal Master Key (typically stored in a clear database)                Used for exchanging keys with the terminal, in our scenario.            */            SecureDESKey tmk = new SecureDESKey(sm.LENGTH_DES3_2KEY, sm.TYPE_TMK,                "A0DC2159505FE495FE59B4EAA63F89DF", "863605");            /*                Generating a new Terminal PIN Key            */            // SecureDESKey tpk = sm.generateKey(sm.LENGTH_DES3_2KEY, sm.TYPE_TPK);            /* just to make the test results, the same :-) */                SecureDESKey tpk = new SecureDESKey(sm.LENGTH_DES3_2KEY, sm.TYPE_TPK,                "99C2B0C250C7190DC5B11D1B28F5C007", "01D863");            /*                Export the TPK to be sent to the terminal (See ANSI X9.24, Key                Management method 2)                At the terminal, the terminal would import TPK to its own security module            */            byte[] tpkUnderTmk = sm.exportKey(tpk, tmk);            /*                PIN under TPK received from terminal            */            EncryptedPIN pinUnderTpk = new EncryptedPIN("C77BC10670AC51FE", sm.FORMAT01,                "400000123456");            /*                Translating PIN to issuer.                The issuer in this case accepts encrypted PINs using FORMAT01            */            EncryptedPIN pinUnderZpk = sm.translatePIN(pinUnderTpk, tpk, zpk, sm.FORMAT01);        } catch (Exception e) {            e.printStackTrace();        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -