filebot/source/net/filebot/hash/HashType.java

127 lines
2.3 KiB
Java
Raw Normal View History

2014-04-19 02:30:29 -04:00
package net.filebot.hash;
import java.util.zip.CRC32;
2014-04-19 02:30:29 -04:00
import net.filebot.MediaTypes;
import net.filebot.util.FileUtilities.ExtensionFileFilter;
public enum HashType {
2014-07-22 03:13:35 -04:00
SFV {
2014-07-22 03:13:35 -04:00
@Override
public Hash newHash() {
return new ChecksumHash(new CRC32());
}
2014-07-22 03:13:35 -04:00
@Override
public VerificationFormat getFormat() {
// e.g folder/file.txt 970E4EF1
return new SfvFormat();
}
2014-07-22 03:13:35 -04:00
@Override
public ExtensionFileFilter getFilter() {
2017-01-12 09:18:10 -05:00
return MediaTypes.getTypeFilter("verification/sfv");
}
},
2014-07-22 03:13:35 -04:00
MD5 {
2014-07-22 03:13:35 -04:00
@Override
public Hash newHash() {
return new MessageDigestHash("MD5");
}
2014-07-22 03:13:35 -04:00
@Override
public VerificationFormat getFormat() {
// e.g. 50e85fe18e17e3616774637a82968f4c *folder/file.txt
return new VerificationFormat();
}
2014-07-22 03:13:35 -04:00
@Override
public ExtensionFileFilter getFilter() {
2017-01-12 09:18:10 -05:00
return MediaTypes.getTypeFilter("verification/md5sum");
}
},
2014-07-22 03:13:35 -04:00
SHA1 {
2014-07-22 03:13:35 -04:00
@Override
public Hash newHash() {
return new MessageDigestHash("SHA-1");
}
2014-07-22 03:13:35 -04:00
@Override
public VerificationFormat getFormat() {
// e.g 1a02a7c1e9ac91346d08829d5037b240f42ded07 ?SHA1*folder/file.txt
return new VerificationFormat("SHA1");
}
2014-07-22 03:13:35 -04:00
@Override
public ExtensionFileFilter getFilter() {
2017-01-12 09:18:10 -05:00
return MediaTypes.getTypeFilter("verification/sha1sum");
}
2014-07-22 03:13:35 -04:00
@Override
public String toString() {
return "SHA1";
}
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() {
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
public abstract Hash newHash();
2014-07-22 03:13:35 -04:00
public abstract VerificationFormat getFormat();
2014-07-22 03:13:35 -04:00
public abstract ExtensionFileFilter getFilter();
2014-07-22 03:13:35 -04:00
}