我不知道如何实现以下算法.
例如,我有int = 26,这是二进制的"11010".现在我需要实现1的一个操作,另一个操作为0,从左到右,直到字节结束.但我真的不知道如何实现这一点.也许我可以将二进制转换为char数组,但我不知道如何.btw,int仅在示例中等于26,在应用程序中它将是随机的.
我仍然是密码学的一个菜鸟我每天偶然发现简单的事情.而今天只是其中的一天.
我想用弹性城堡库验证java中的smime消息,我想我几乎把它想出来了,但此时的问题是构建PKIXparameters对象.比方说,我有一个具有以下结构的终端实体x509certificate:
root certificate
+->intermediate certificate
+->end-entity certificate
Run Code Online (Sandbox Code Playgroud)
为了验证消息,我需要首先建立一个信任链,但我无法弄清楚如何从最终实体中提取根证书和中间证书.
我试图以root身份使用end-entity,但它不起作用:
InputStream isCert = GetFISCertificate();
List list = new ArrayList();
X509Certificate rootCert = (X509Certificate) certificateFactory.generateCertificate(isCert);
list.add(rootCert);
CollectionCertStoreParameters params = new CollectionCertStoreParameters(list);
CertStore store = CertStore.getInstance("Collection", params, BC);
//create cert path
List certChain = new ArrayList();
certChain.add(rootCert);
CertPath certPath = certificateFactory.generateCertPath(certChain);
Set trust = Collections.singleton(new TrustAnchor(rootCert, null));
//validation
CertPathValidator certPathValidator = CertPathValidator.getInstance("PKIX", BC);
PKIXParameters pKIXParameters = new PKIXParameters(trust);
pKIXParameters.addCertStore(store);
pKIXParameters.setDate(new Date());
try {
CertPathValidatorResult result = certPathValidator.validate(certPath, pKIXParameters);
System.out.println("certificate path validated");
} …Run Code Online (Sandbox Code Playgroud)