how to get the file signature in java? for example a pdf file has signature 25 50 44 46 ..how to get it using java?

Those are the first bytes in the file, yes?
Just open a FileInputStream with that file and read the first 4 bytes into a 4 byte array where you can check the values. Then close the stream.
https://docs.oracle.com/javase/8/docs/api/java/io/FileInputStream.html

ps: Although those bytes correspond to "%PDF" in ASCII, don't be tempted to try to read the file into a String. Java uses 16 byte characters with support for all kinds of local languages and scripts - reading as text may work in a machine configured for English, but could all kinds of surprising things in (say) Arabic or Hebrew. Just stick to reading the btes as numeric bytes.

Do you mean the first few bytes of a file, or the hash of the file? If you mean the hash, you will need to use a hash algorithim which is probably already implemented in the java API like sha1, sha12, md5, etc. The reason I bring it up is that sometimes these algorithims are called fingerprinting algorithims, and can be used to establish that a file is unique to other files. Even changing a single char will drastically change the hash. So far I have only implemented a fingerprinting program in C#, but I googled a little, and the results are fairly easy to find once you use the correct vocabulary.

Edited 2 Years Ago by overwraith: more accuracy

I think the original post (with example) is pretty clear that it's the signature in the first few bytes he wants, but yes, you are right that the the Java API includes classes to get a hash (MessageDigest) for a file very easily.

This article has been dead for over six months. Start a new discussion instead.