2014-04-19 02:30:29 -04:00
|
|
|
package net.filebot.hash;
|
2009-02-09 15:56:20 -05:00
|
|
|
|
|
|
|
import java.util.zip.CRC32;
|
|
|
|
|
2014-04-19 02:30:29 -04:00
|
|
|
import net.filebot.MediaTypes;
|
|
|
|
import net.filebot.util.FileUtilities.ExtensionFileFilter;
|
2009-08-10 07:46:24 -04:00
|
|
|
|
2009-05-02 19:34:04 -04:00
|
|
|
public enum HashType {
|
2014-07-22 03:13:35 -04:00
|
|
|
|
2009-02-15 07:20:43 -05:00
|
|
|
SFV {
|
2014-07-22 03:13:35 -04:00
|
|
|
|
2009-02-09 15:56:20 -05:00
|
|
|
@Override
|
2009-02-15 07:20:43 -05:00
|
|
|
public Hash newHash() {
|
2009-02-09 15:56:20 -05:00
|
|
|
return new ChecksumHash(new CRC32());
|
|
|
|
}
|
2014-07-22 03:13:35 -04:00
|
|
|
|
2009-02-15 07:20:43 -05:00
|
|
|
@Override
|
2009-05-16 16:16:13 -04:00
|
|
|
public VerificationFormat getFormat() {
|
|
|
|
// e.g folder/file.txt 970E4EF1
|
|
|
|
return new SfvFormat();
|
2009-02-15 07:20:43 -05:00
|
|
|
}
|
2014-07-22 03:13:35 -04:00
|
|
|
|
2009-08-10 07:46:24 -04:00
|
|
|
@Override
|
|
|
|
public ExtensionFileFilter getFilter() {
|
2017-01-12 09:18:10 -05:00
|
|
|
return MediaTypes.getTypeFilter("verification/sfv");
|
2009-08-10 07:46:24 -04:00
|
|
|
}
|
2009-02-09 15:56:20 -05:00
|
|
|
},
|
2014-07-22 03:13:35 -04:00
|
|
|
|
2009-02-09 15:56:20 -05:00
|
|
|
MD5 {
|
2014-07-22 03:13:35 -04:00
|
|
|
|
2009-02-09 15:56:20 -05:00
|
|
|
@Override
|
2009-02-15 07:20:43 -05:00
|
|
|
public Hash newHash() {
|
2009-02-09 15:56:20 -05:00
|
|
|
return new MessageDigestHash("MD5");
|
|
|
|
}
|
2014-07-22 03:13:35 -04:00
|
|
|
|
2009-04-06 16:58:27 -04:00
|
|
|
@Override
|
2009-05-16 16:16:13 -04:00
|
|
|
public VerificationFormat getFormat() {
|
2009-04-06 16:58:27 -04:00
|
|
|
// e.g. 50e85fe18e17e3616774637a82968f4c *folder/file.txt
|
2009-05-16 16:16:13 -04:00
|
|
|
return new VerificationFormat();
|
2009-04-06 16:58:27 -04:00
|
|
|
}
|
2014-07-22 03:13:35 -04:00
|
|
|
|
2009-08-10 07:46:24 -04:00
|
|
|
@Override
|
|
|
|
public ExtensionFileFilter getFilter() {
|
2017-01-12 09:18:10 -05:00
|
|
|
return MediaTypes.getTypeFilter("verification/md5sum");
|
2009-08-10 07:46:24 -04:00
|
|
|
}
|
2009-02-09 15:56:20 -05:00
|
|
|
},
|
2014-07-22 03:13:35 -04:00
|
|
|
|
2009-02-09 15:56:20 -05:00
|
|
|
SHA1 {
|
2014-07-22 03:13:35 -04:00
|
|
|
|
2009-02-09 15:56:20 -05:00
|
|
|
@Override
|
2009-02-15 07:20:43 -05:00
|
|
|
public Hash newHash() {
|
2009-02-09 15:56:20 -05:00
|
|
|
return new MessageDigestHash("SHA-1");
|
|
|
|
}
|
2014-07-22 03:13:35 -04:00
|
|
|
|
2009-04-06 16:58:27 -04:00
|
|
|
@Override
|
2009-05-16 16:16:13 -04:00
|
|
|
public VerificationFormat getFormat() {
|
2009-04-06 16:58:27 -04:00
|
|
|
// e.g 1a02a7c1e9ac91346d08829d5037b240f42ded07 ?SHA1*folder/file.txt
|
2009-05-16 16:16:13 -04:00
|
|
|
return new VerificationFormat("SHA1");
|
2009-04-06 16:58:27 -04:00
|
|
|
}
|
2014-07-22 03:13:35 -04:00
|
|
|
|
2009-08-10 07:46:24 -04:00
|
|
|
@Override
|
|
|
|
public ExtensionFileFilter getFilter() {
|
2017-01-12 09:18:10 -05:00
|
|
|
return MediaTypes.getTypeFilter("verification/sha1sum");
|
2009-08-10 07:46:24 -04:00
|
|
|
}
|
2014-07-22 03:13:35 -04:00
|
|
|
|
2009-02-15 07:20:43 -05:00
|
|
|
@Override
|
|
|
|
public String toString() {
|
2014-08-28 11:13:34 -04:00
|
|
|
return "SHA1";
|
2009-02-15 07:20:43 -05:00
|
|
|
}
|
2014-07-22 03:13:35 -04:00
|
|
|
},
|
|
|
|
|
|
|
|
SHA256 {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public Hash newHash() {
|
|
|
|
return new MessageDigestHash("SHA-256");
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public VerificationFormat getFormat() {
|
2017-05-26 05:13:51 -04:00
|
|
|
// e.g 1a02a7c1e9ac91346d08829d5037b240f42ded07 ?SHA256*folder/file.txt
|
2014-07-22 03:13:35 -04:00
|
|
|
return new VerificationFormat("SHA256");
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public ExtensionFileFilter getFilter() {
|
2017-01-12 09:18:10 -05:00
|
|
|
return MediaTypes.getTypeFilter("verification/sha256sum");
|
2014-07-22 03:13:35 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public String toString() {
|
2014-08-28 11:13:34 -04:00
|
|
|
return "SHA2";
|
2014-07-22 03:13:35 -04:00
|
|
|
}
|
2019-02-19 14:21:55 -05:00
|
|
|
},
|
|
|
|
|
|
|
|
SHA3_384 {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public Hash newHash() {
|
|
|
|
return new MessageDigestHash("SHA3-384");
|
|
|
|
}
|
2014-07-22 03:13:35 -04:00
|
|
|
|
2019-02-19 14:21:55 -05:00
|
|
|
@Override
|
|
|
|
public VerificationFormat getFormat() {
|
|
|
|
// e.g 1a02a7c1e9ac91346d08829d5037b240f42ded07 ?SHA3-384*folder/file.txt
|
|
|
|
return new VerificationFormat("SHA3-384");
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public ExtensionFileFilter getFilter() {
|
|
|
|
return MediaTypes.getTypeFilter("verification/sha3sum");
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public String toString() {
|
|
|
|
return "SHA3";
|
|
|
|
}
|
|
|
|
};
|
2017-05-26 05:15:21 -04:00
|
|
|
|
2009-02-15 07:20:43 -05:00
|
|
|
public abstract Hash newHash();
|
2014-07-22 03:13:35 -04:00
|
|
|
|
2009-05-16 16:16:13 -04:00
|
|
|
public abstract VerificationFormat getFormat();
|
2014-07-22 03:13:35 -04:00
|
|
|
|
2009-08-10 07:46:24 -04:00
|
|
|
public abstract ExtensionFileFilter getFilter();
|
2014-07-22 03:13:35 -04:00
|
|
|
|
2009-02-09 15:56:20 -05:00
|
|
|
}
|