Tag: 签名

字节数组到*签名* Int

我正在尝试将-101转换为字节数组,然后将字节数组转换回-101 。 我的方法适用于正值,但不适用于负值。 你能说出我做错了什么吗? 而不是-101 , byteArrayToInt方法返回65435 。 谢谢! /** * Converts a byte array to a 32-bit int. * * @param array The byte array to convert. * @return The 32-bit int value. */ public static int byteArrayToInt(byte[] array) { ValidationUtils.checkNull(array); int value = 0; for (int i = 0; i < array.length; i++) […]

如何从服务器validation客户端代码是否未被修改

我有一个java服务器通过json-rpc与java客户端通信。 客户端应该向服务器报告内部统计信息,从而修改服务器行为。 客户端和服务器的主要内容都是内部编写的,因此我可以控制客户端的操作以及报告统计信息的方式,但有没有办法可以validation客户端代码是否未被修改? 如果有,它仍将为客户端提供服务,但使用一些默认行为。 客户端将公开发布,因此对于有人反编译并改变行为并不是什么大不了的事。 简单地让客户端发送代码的签名没有好处,因为可以通过将客户端的原始副本与修改后的副本一起保存来轻易欺骗。

如何使用NetBeans自行签名applet?

在过去的几个月里,我为一个学术项目开发了一个沙箱小程序。 由于Java 1.7.51对applet的安全限制,我一直试图自我签署我的applet,希望它能够遵守或克服JRE对applet的必要条件。 我正在使用NetBeans,我将一些显示如何自我签名jar文件的链接作为出发点。 不幸的是,我无法让它发挥作用。 我试图在build.xml文件中添加以下指令: 我收到以下错误消息: Execute failed: java.io.IOException: Cannot run program “jarsigner.exe”: error=2, The specified file is not found 我非常感谢你的帮助,以及更多关于NetBeans的帮助!

已签名的Jar文件中的Spring Component Scan(@Autowire)速度很慢

多年前我们遇到了独立java应用程序中Spring组件扫描速度慢的问题所以我在stackoverflow中问过: 慢速弹簧组件扫描 。 多年以后我再次​​偶然发现了这个问题,我想我发现它为什么很慢:这是因为jar文件是签名的。 目前我们的应用程序中有大约170个jar文件。 我们自己和第三方。 我们签下所有人。 通常我们使用webstart,组件扫描的性能也可以。 只需执行“java -cp mainclass”即可通过庞大的类路径启动我们的app,compoennt扫描需要几分钟。 如果我只是从所有jar文件中删除MANIFEST.MF文件(只包含签名信息),再次运行应用程序,速度就像webstart一样快。 因此签名检查似乎需要花费大量时间。 我尝试在Java控制台中停用签名扫描。 没有效果。 仍然很慢。 有java运行时参数吗?

将java.net.InetAddress转换为long

我想转换一个java.net.InetAddress ,我与签名/未签名的问题进行斗争。 这样的痛苦。 我在Java中读取从短转换为字节和反向转换 为什么字节b =(字节)0xFF等于整数-1? 结果得出: final byte [] pumpeIPAddressRaw = java.net.InetAddress.getByName (pumpeIPAddressName).getAddress (); final long pumpeIPAddress = ((pumpeIPAddressRaw [0] & 0xFF) << (3*8)) + ((pumpeIPAddressRaw [1] & 0xFF) << (2*8)) + ((pumpeIPAddressRaw [2] & 0xFF) << (1*8)) + (pumpeIPAddressRaw [3] & 0xFF); android.util.Log.i ( Application.TAG, "LOG00120: Setzte Pumpen Addresse : " + pumpeIPAddress […]

具有相同擦除的两种方法不是必须覆盖等效的(或者它们之间的签名不是子签名)?

我正在为jdk6阅读令人难以置信的书“java scjp认证的程序员指南”,以及关于generics覆盖的部分。 在它上面描述了subsignature和override-equivalent,并描述了我引用的覆盖等价的一些例子: 给定以下三个类中的generics方法声明: static void merge (MyStack s1, MyStack s2) { /*…*/ } static void merge (MyStack s1, MyStack s2) { /*…*/ } static void merge (MyStack s1, MyStack s2) { /*…*/ } 擦除后,所有三种方法的签名是: merge(MyStack, MyStack)即方法的签名是覆盖等价的,因此这些方法不会重载。 我并不完全同意这些方法是覆盖等价的,事实上我认为这些方法有一个“擦除名称冲突”,但没有一个是另一个的子签名……可能是错误的,所以我想对此有所了解。 子签名的定义让我觉得它们不是它们之间的子签名。 在JSL 6#8.4.2方法签名中( http://docs.oracle.com/javase/specs/jls/se6/html/classes.html#8.4.2 ) 如果两个方法具有相同的名称和参数类型,则它们具有相同的签名。 如果满足以下所有条件,则两个方法或构造函数声明M和N具有相同的参数类型: 他们。 具有相同数量的forms参数(可能为零) 它们具有相同数量的类型参数(可能为零) 设为M的forms类型参数,并让为N的forms类型参数。将N的类型中每个出现的Bi重命名为Ai的边界对应的类型变量和M和N的参数类型是相同的。 如果m2与m1具有相同的签名,或者m1的签名与m2的签名擦除相同,则方法m1的签名是方法m2的签名的子签名。 … 如果m1是m2的子签名或m2是m1的子签名,则两个方法签名m1和m2是覆盖等价的。 在JSL 8#8.4.2中。 方法签名( […]

Signature.verify()总是返回false

当我使用Signature类validation签名时,Signature.verify()方法总是返回false。 我的代码如下。 package test; import com.sun.org.apache.xerces.internal.impl.dv.util.Base64; import java.io.UnsupportedEncodingException; import java.math.BigInteger; import java.security.*; import java.security.spec.InvalidKeySpecException; import java.security.spec.RSAPublicKeySpec; import java.util.logging.Level; import java.util.logging.Logger; /* this method converts the string into hash using SHA1 encryption algorithm */ public class SignatureTest { static byte[] sha1(String input) throws NoSuchAlgorithmException { MessageDigest mDigest = MessageDigest.getInstance(“SHA1”); byte[] result = mDigest.digest(input.getBytes()); System.out.println(“sha1 hashed data” […]

从签名的pdf中获取原始内容

我想知道如何使用iText java库或其他文件从已签名的pdf文档中获取原始内容。 谢谢 更新1: 可能的例子: PdfReader reader = new PdfReader(PATH_TO_PDF); AcroFields fields = reader.getAcroFields(); ArrayList signatures = fields.getSignatureNames(); for (String signature : signatures) { // Start revision extraction ByteArrayOutputStream out = new ByteArrayOutputStream(); byte bb[] = new byte[8192]; InputStream ip = fields.extractRevision(signature); int n = 0; while ((n = ip.read(bb)) > 0) out.write(bb, 0, n); […]

如何生成带有绿色复选标记的签名PDF

我正在使用iText签署PDF文件。 我在签名中加入了一个图形。 这有效,但是显示文档validation时的绿色复选标记(或黄色问号)会干扰我插入的图形,使最终结果看起来很难看。 它要么显示在签名图形的上方或下方,但我无法让它消失。 有谁知道如何解决这一问题?

使用BouncyCastlevalidationJava中的ECDSA签名时出错

我已经测试了一个解决方案,以validationECDSA签名( 如何从EC公钥字节中获取PublicKey对象? ),它与给定数据完美配合。 这是数据: byte[] pubKey = DatatypeConverter.parseHexBinary(“049a55ad1e210cd113457ccd3465b930c9e7ade5e760ef64b63142dad43a308ed08e2d85632e8ff0322d3c7fda14409eafdc4c5b8ee0882fe885c92e3789c36a7a”); byte[] message = DatatypeConverter.parseHexBinary(“54686973206973206a75737420736f6d6520706f696e746c6573732064756d6d7920737472696e672e205468616e6b7320616e7977617920666f722074616b696e67207468652074696d6520746f206465636f6465206974203b2d29”); byte[] signature = DatatypeConverter.parseHexBinary(“304402205fef461a4714a18a5ca6dce6d5ab8604f09f3899313a28ab430eb9860f8be9d602203c8d36446be85383af3f2e8630f40c4172543322b5e8973e03fff2309755e654”); 这是代码(打印为true ): private static boolean isValidSignature(byte[] pubKey, byte[] message,byte[] signature) throws NoSuchAlgorithmException, NoSuchProviderException, InvalidKeyException, SignatureException, InvalidKeySpecException { Signature ecdsaVerify = Signature.getInstance(“SHA256withECDSA”, new BouncyCastleProvider()); ecdsaVerify.initVerify(getPublicKeyFromBytes(pubKey)); ecdsaVerify.update(message); return ecdsaVerify.verify(signature); } private static PublicKey getPublicKeyFromBytes(byte[] pubKey) throws NoSuchAlgorithmException, InvalidKeySpecException { ECNamedCurveParameterSpec spec […]