java - 关于xml签名问题,xmlsec读取

 非船_725 发布于 2022-10-29 12:30


    
        
            1.0.0
            SHHRSS71
            xxxx.medical.card.query
            20160229105541
            UTC+8
            20160229104541129849135077530072
        
        
            201507137646513821856579626
            
            
            
        
    
    2ad0205bfe5d338ac60bf7805670a877dda66f38b168e7479b27f51991f938bd26901782f691d290cc54629294be1b337e57071e38de5ef5eae6d79ec5a09bca5a0af5112f70a0e3df28e2e1c304755b98b0a32a4d1ebb243fc311ce3771803d96a2adaddf63d88686ba97528170e3487dd809fe202d5ab6ad72f2d2ddce3dddcb55943409ef6ff93bc98b8c782502b27675b3f88413c6249899f3e33194c29707d403a1e2fee66513ed1407e032d6dcb3347ab0d00cf21508ed367f49985f605bb1eeef66f92948e4fa4a3c2eda170d98b4e59646d9a59a50dd8ecdf7ad9e0e61723dc29ef8e9628aac56a35afaa2839acc1655276fb38e2f2fa1a6cc9c5a1b

这种格式的xml,签名验证,我要拿到signature的值,和request部分,用xmlsec怎么写呢? 是不是签名验证都要用xmlsec来读取xml数据?

1 个回答
  •     <dependencies>
            <dependency>
                <groupId>xml-security</groupId>
                <artifactId>xmlsec</artifactId>
                <version>1.0.5D2</version>
            </dependency>
            <dependency>
                <groupId>dom4j</groupId>
                <artifactId>dom4j</artifactId>
                <version>1.6.1</version>
            </dependency>
      </dependencies>
    

    pom.xml文件中添加依赖

    package tt;
    
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.InputStreamReader;
    
    public class Test {
    
        public static void main(String[] args) {
            File file = new File("D:/a.txt");
            try {
                InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(file), "GBK");
                BufferedReader bufferReader = new BufferedReader(inputStreamReader);
                String lineTXT = null;
                String signature = null;
                while ((lineTXT = bufferReader.readLine()) != null) {
                    if (lineTXT.trim().startsWith("<signature>")) {
                        signature = lineTXT.trim().substring(11, lineTXT.trim().length() - 12);
                        System.out.println(signature);
                    }
                }
                bufferReader.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    
    2022-11-12 01:48 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有