Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中写入文件时加密XML元素_Java_Xml_Security - Fatal编程技术网

在java中写入文件时加密XML元素

在java中写入文件时加密XML元素,java,xml,security,Java,Xml,Security,我有一个java应用程序,它通过XML向供应商发送(HTTPPOST方法)信用卡号。 写入XML文件时,当前信用卡号也会打印在文件中。但将信用卡号直接写入文件而不加密是不好的做法 我不想加密整个XML,因为我们通过HTTPS链接发送安全信息,因此我认为它提供了必要的安全性。因此,在Java环境中写入文件时,我只想加密信用卡号元素 String xmlRequest = <?xml version='1.0'?> <ReservationRequest> &l

我有一个java应用程序,它通过XML向供应商发送(
HTTPPOST方法
)信用卡号。 写入XML文件时,当前信用卡号也会打印在文件中。但将信用卡号直接写入文件而不加密是不好的做法

我不想加密整个XML,因为我们通过
HTTPS
链接发送安全信息,因此我认为它提供了必要的安全性。因此,在Java环境中写入文件时,我只想加密信用卡号元素

String xmlRequest = <?xml version='1.0'?> 
  <ReservationRequest>
    <Passenger>
    <firstName>XXX</firstName>
    <lastName>YYY</lastName>
    </Passenger>    
    <CreditCard Currency='USD'>
      <Number>1234567812345678</Number>
      <cvv>123</cvv>
      <Expiration>12/12</Expiration>
    </CreditCard>
  </ReservationRequest>
String xmlRequest=
XXX
YYY
1234567812345678
123
12/12
请注意,我想将发送给供应商的相同字符串写入文件

String reqXml=”“;
        String reqXml                           = "" ;      

        String creditCardNumber                 = "1234567890128899" ;      

        reqXml = "<RentalPaymentPref>" +
        "<PaymentCard CardType=\"1\" CardCode=\"VI\" CardNumber=\""+creditCardNumber+"\" ExpireDate=\"0912\" SeriesCode=\"123\">" +
        "<CardHolderName>Ruchira kariyawasam</CardHolderName>" +
        "</PaymentCard>" + 
        "</RentalPaymentPref>" ;        

        StringBuffer reqXmlString = new StringBuffer(reqXml.toString());    

        short startIndex    = (short)(reqXml.indexOf("CardNumber")+12);


       if(null!=creditCardNumber && (!creditCardNumber.equals("")))
        {
            reqXmlString.replace(startIndex,(startIndex+12),"xxxxxxxxxxxx");            
        }    

        System.out.println("reqXmlString---->"+reqXmlString);


// Remaining file writing code goes here. 
字符串creditCardNumber=“12345678900128899”; reqXml=“”+ "" + “Ruchira kariyawasam”+ "" + "" ; StringBuffer reqXmlString=新的StringBuffer(reqXml.toString()); short startIndex=(short)(要求xml.indexOf(“卡号”)+12); if(null!=creditCardNumber&(!creditCardNumber.equals(“”)) { 要求字符串替换(startIndex,(startIndex+12),“XXXXXXXXXX”); } System.out.println(“reqXmlString-->”+reqXmlString); //剩下的文件编写代码在这里。
在这里检查卡号是空的还是空的。如果我们得到了卡号,那么在写入文件时只屏蔽字符串内容

输出

<RentalPaymentPref>
<PaymentCard CardType="1" CardCode="VI" CardNumber="xxxxxxxxxxxx8899" ExpireDate="0912" SeriesCode="123">
<CardHolderName>Ruchira kariyawasam</CardHolderName>
</PaymentCard>
</RentalPaymentPref>

鲁希拉·卡里亚瓦萨姆

当你说“写入文件”时,你是指你的日志吗?是的,就是写入。我们有一个日志文件夹,它包含所有的XML日志在这种情况下,为什么不通过一个解析数字标记的方法传递XML,然后用星号替换内容,除了最后四位数字?好的。Thnks。你有这方面的样本吗?没有,没有。但是如果你在实现自己的方面有任何问题,你知道一个好的网站可以提问:)