小编use*_*816的帖子

XML签名:如何计算摘要值?

我有这样的XML

<?xml version="1.0" encoding="utf-8"?>
<foo>
  <bar>
    <value>A</value>
  </bar>
  <bar>
    <value>B</value>
  </bar>
  <baz>
    <value>C</value>
  </baz><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /><DigestValue>WqpRWHxXA0YgH+p3Sxy6hRo1XIk=</DigestValue></Reference></SignedInfo><SignatureValue>EoRk/GhR4UA4D+8AzGPPkeim1dZrlSy88eF73n/T9Lpeq9IxoGRHNUA8FEwuDNJuz3IugC0n2RHQQpQajiYvhlY3XG+z742pgsdMfFE4Pddk4gF1T8CVS1rsF7bjX+FKT/c8B2/C8FNgmfkxDlB/ochtbRvuAGPQGtgJ3h/wjSg=</SignatureValue><KeyInfo><X509Data><X509Certificate>MIIB8zCCAVygAwIBAgIQgfzbrIjhLL9FobStI2ub3zANBgkqhkiG9w0BAQQFADATMREwDwYDVQQDEwhUZXN0ZUFjbjAeFw0wMDAxMDEwMDAwMDBaFw0zNjAxMDEwMDAwMDBaMBMxETAPBgNVBAMTCFRlc3RlQWNuMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDO+yAZ8/qJbhSVH/+2wMmzix3jM/CExb6sTgaiPwe6ylcHgF45zeQDq06OSJZCSns34em/ULINZddDf8z0b9uk/2sOGr1pYqsunLLBvw2FkvWJQDkhx2SzCm8v4xGX2kyXNbjiY/K56oPOMjpayKoAFnnvk7p2iFAxNZK/6lpZ7wIDAQABo0gwRjBEBgNVHQEEPTA7gBCOOHcajwnATYZ0t6w7LVU0oRUwEzERMA8GA1UEAxMIVGVzdGVBY26CEIH826yI4Sy/RaG0rSNrm98wDQYJKoZIhvcNAQEEBQADgYEABL9Qhi6f1Z+/t8oKXBQFx3UUsNF9N2o4k6q1c3CKZYqx2E/in+nARIYRdh5kbeLfomi6GIyVFeXExp8crob3MAzOQMvXf9+ByuezimMPIHDvv0u3kmmeITXfoZrHCDxLoWWlESN1owBfKPqe7JKAuu9ORDC0pUiUfCHWxCoqNos=</X509Certificate></X509Data></KeyInfo></Signature>
</foo>
Run Code Online (Sandbox Code Playgroud)

如何创建引用中的摘要值(WqpRWHxXA0YgH + p3Sxy6hRo1XIk =)?我的意思是如何手动计算这个值?

xml digest digital-signature xml-signature

23
推荐指数
3
解决办法
5万
查看次数

c#验证CRL列表中的证书

如何以编程方式检查某个证书是否从其CA CRL列表中撤销?

我这样做:

X509Chain ch = new X509Chain();
ch.ChainPolicy.RevocationMode = X509RevocationMode.Online;
ch.ChainPolicy.RevocationFlag = X509RevocationFlag.EntireChain;
ch.ChainPolicy.UrlRetrievalTimeout = new TimeSpan(1000);
ch.ChainPolicy.VerificationFlags = X509VerificationFlags.NoFlag;
ch.ChainPolicy.VerificationTime = DateTime.Now;
ch.Build(certificate);
foreach (X509ChainStatus s in ch.ChainStatus)
{
    string str = s.Status.ToString();
    Console.WriteLine("str: " + str);
}
X509Store store = new X509Store(StoreName.Disallowed, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadWrite);
bool isRevoked = store.Certificates.Contains(certificate);
store.Close();
return !isRevoked && certificate.Verify();
Run Code Online (Sandbox Code Playgroud)

我得到"str:RevokedStatusUnknown".只有在我撤销证书后等待很多个小时 - >状态才会返回为已撤销,尽管我在撤销证书后立即发布了CRL.为什么它不能立即访问CRL?

c# certificate

6
推荐指数
1
解决办法
4737
查看次数

HttpWebRequest/HttpResponse:如何在响应中发送数据?

我有一个客户端和一个服务器.

在客户端我有:

HttpWebRequest request = 
    (HttpWebRequest)WebRequest.Create("http://localhost/fa/Default.aspx");
request.Method = "POST";                

byte[] data = Encoding.ASCII.GetBytes(GetSAMLRequestB64());

request.ContentType = "text/xml";
request.ContentLength = data.Length;
Stream stream = request.GetRequestStream();
stream.Write(data, 0, data.Length);

HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
Run Code Online (Sandbox Code Playgroud)

在服务器端,我有:

public void ProcessRequest(HttpContext httpContext) 
{
    HttpResponse response = httpContext.Response;             
    response.Clear();
    response.BufferOutput = true;
    response.StatusCode = 200; // HttpStatusCode.OK;
    response.Write("Hello");
    response.ContentType = "text/xml";
    response.End();
}
Run Code Online (Sandbox Code Playgroud)

客户端收到正确的响应StatusCode.虽然,如果我(int)response.ContentLength;在客户端上,我得到0.我收到响应(客户端)后,我无法读取字符串"Hello".

.net c# httpresponse httpwebrequest

6
推荐指数
1
解决办法
3万
查看次数

ASP HttpWebRequest和Redirect

好的,我有一个客户端使用一些数据对服务器进行POST.服务器接收帖子,并使用重定向进行回答.问题是客户端没有重定向.此外,我试图检查客户端获得的响应的StatusCode,它总是相同的"OK".而不是重定向代码.我错过了什么?

在客户端我有这样的事情:

  StringBuilder sb;
        try
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost/serv/Default.aspx");
            request.Method = "POST";                

        byte[] data = Encoding.ASCII.GetBytes(GetDATA());

        request.ContentType = "text/xml";
        request.ContentLength = data.Length;
        Stream stream = request.GetRequestStream();
        stream.Write(data, 0, data.Length);

        request.AllowAutoRedirect = true;
        request.MaximumAutomaticRedirections = 10;

        HttpWebResponse response = (HttpWebResponse) request.GetResponse();
            response.Close(); } catch(Exception ex) {}
Run Code Online (Sandbox Code Playgroud)

在服务器端我只有这一行:

HttpContext.Current.Response.Redirect("http://www.google.com", true);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,客户端会收到答案而不会执行任何操作.

谢谢.

c# asp.net http http-redirect web-scraping

5
推荐指数
1
解决办法
9749
查看次数

2个jar库如何独立使用log4j?

我做了一个使用log4j的应用程序.一切正常,但是,当我制作一个该应用程序的jar并将其附加到另一个应用程序时,日志记录停止工作(没有创建日志文件).我认为问题是这最后一个应用程序还包括已经使用log4j的另一个jar(除了我的).顺便说一句,这个另一个jar是hadoop,我认为它是采用日志上下文.我的log4j属性文件在classpath中,也在jar的根目录中:

log4j.logger.abc = DEBUG,A1

log4j.appender.A1 = org.apache.log4j.FileAppender log4j.appender.A1.File = my-log.log log4j.appender.A1.layout = org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern =%d {yy/MM/dd HH:mm:ss}%p%c {2}:%m%n

我该怎么做才能解决这个问题?

谢谢.

java logging hadoop log4j jar

4
推荐指数
1
解决办法
2907
查看次数