Files
geocaching/src/main/java/hash/Hachee.java
2025-04-13 20:30:02 +02:00

507 lines
8.4 KiB
Java

package hash;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
import java.util.List;
public class Hachee {
private static final List<String> aardappels = Arrays.asList(
"DORE",
"NIER",
"AGRIA",
"ALPHA",
"IRENE",
"KRIEL",
"MALTA",
"PATAT",
"POTER",
"RAPER",
"RODEN",
"ROTJE",
"GLORIA",
"LEGGER",
"ROOSJE",
"TOFFEL",
"BINTJE",
"FURORE",
"NICOLA",
"PIEPER",
"ROOIEN",
"ZANDER",
"AFKOKER",
"ASTARTE",
"ELEMENT",
"GLIMMER",
"SATURNA",
"BILDSTAR",
"HOORNTJE",
"BILTSTAR",
"DRIELING",
"PREMIERE",
"ROODNEUS",
"OPPERDOES",
"ARNHEMMER",
"CHARLOTTE",
"KEMPENAAR",
"PIMPERNEL",
"PREVALENT",
"PROMINENT",
"BEVELANDER",
"EERSTELING",
"NEGENWEKER",
"EIGENHEIMER",
"PAARSPETTEN",
"PAARSPITTEN",
"LEKKERLANDER");
private static final List<String> groentes = Arrays.asList(
"UI",
"LOF",
"SLA",
"BIET",
"EPPE",
"ERWT",
"MAIS",
"OKRA",
"PEUL",
"UIEN",
"BOON",
"KNOL",
"KOOL",
"MOES",
"PEEN",
"PREI",
"RAAP",
"BOSUI",
"KROOT",
"ATJAR",
"BONEN",
"IJSSLA",
"KUSSA",
"LATUW",
"RADIJS",
"TAHOE",
"TAUGE",
"FRISEE",
"KROTEN",
"MIELIE",
"RUCOLA",
"SAVOOI",
"SIEPEL",
"SJALOT",
"SPRUIT",
"WORTEL",
"BIETEN",
"DUNSEL",
"LINZEN",
"MOLSLA",
"PAKSOI",
"SAJOER",
"SALADE",
"SNIJSLA",
"TOMAAT",
"VENKEL",
"VETSLA",
"WITLOF",
"ZURING",
"BOLETEN",
"DOPERWT",
"KOOLSLA",
"LENTEUI",
"MEIKNOL",
"POMPOEN",
"RAMENAS",
"SNIJBIET",
"SNIJBOON",
"TOMATEN",
"ALFALFA",
"ANDIJVIE",
"ASPERGE",
"BIETJES",
"BOSPEEN",
"DOPPERS",
"KOPKOOL",
"KROPSLA",
"KRULSLA",
"LAMSOOR",
"MEIRAAP",
"PAPRIKA",
"RETTICH",
"SELDERIJ",
"SLABOON",
"TUINSLA",
"VELDSLA",
"VOEDSEL",
"WARMOES",
"WASBOON",
"WASPEEN",
"WITLOOF",
"AKKERSLA",
"ARTISJOK",
"ASPERGES",
"BIESLOOK",
"BOTERSLA",
"BUISKOOL",
"GROENLOF",
"KNOFLOOK",
"PEENTJES",
"PEULTJES",
"RAMMENAS",
"RODEKOOL",
"SPRUITEN",
"STOOFSLA",
"TUINKERS",
"VELDERWT",
"WORTELEN",
"BROCCOLI",
"KNOLRAAP",
"KOOLRAAP",
"KOOLRABI",
"KROPKOOL",
"PEULERWT",
"PORTULAK",
"RABARBER",
"SELDERIE",
"SLABONEN",
"SNIJBONEN",
"SPINAZIE",
"STOKBOON",
"STOKERWT",
"TUINBOON",
"ZUURKOOL",
"APPELMOES",
"BLOEMKOOL",
"FLAGEOLET",
"KAPUCIJNER",
"KASTANJES",
"KOMKOMMER",
"PASTINAAK",
"SEPARABEL",
"SPITSKOOL",
"TUINBONEN",
"WATERKERS",
"AUBERGINE",
"COURGETTE",
"DOPERWTEN",
"IJSBERGSLA",
"MOESKRUID",
"POSTELEIN",
"SLUITKOOL",
"SPRUITJES",
"VETSALADE",
"WITTEKOOL",
"AUBERGINES",
"CHAMPIGNON",
"DOPERWTJES",
"KAPUCIJNERS",
"KOOLSTRONK",
"PETERSELIE",
"RAAPSTELEN",
"STOOFPEREN",
"SUIKERMAIS",
"VENKELKNOL",
"WINTERPEEN",
"WORTELTJES",
"BOERENKOOL",
"GROENEKOOL",
"KABUISKOOL",
"KASANDIJVIE",
"KOUSENBAND",
"WINTERPREI",
"ARTISJOKKEN",
"CHAMPIGNONS",
"CITROENGRAS",
"FLESKALEBAS",
"KNOLSELDERIJ",
"PUNTPAPRIKA",
"SAVOOIEKOOL",
"SELDERIJKNOL",
"BLADSELDERIJ",
"SPERZIEBOON",
"BLADSPINAZIE",
"BLEEKSELDERIJ",
"CANTHARELLEN",
"CAYENNEPEPER",
"KNOLSELDERIE",
"SCHORSENEREN",
"SELDERIEKNOL",
"SELDERIEKOOL",
"SPERZIEBONEN",
"STOOFASPERGE",
"WINTERWORTEL",
"BLADSELDERIE",
"EIKENBLADSLA",
"SLEEPASPERGE",
"WINTERANDIJVIE",
"WINTERWORTELS",
"BLEEKSELDERIE",
"MUSKAATPOMPOEN",
"PRINSESSENBONEN",
"WINTERPOSTELEIN");
private static final List<String> vlezen = Arrays.asList(
"KIP",
"HAM",
"BASK",
"HESP",
"SATE",
"BIEF",
"PATE",
"PORK",
"ROTI",
"STEW",
"TONG",
"ZULT",
"GYROS",
"KEBAK",
"ASPIC",
"BACON",
"KEBAB",
"SPIES",
"STEAK",
"WORST",
"PASTEI",
"POELET",
"SALAMI",
"BAKLAP",
"GEHAKT",
"HACHEE",
"HAMLAP",
"RAGOUT",
"REERUG",
"RIBLAP",
"ROLHAM",
"SAUCIJS",
"BEENHAM",
"BIEFLAP",
"CERVELA",
"GOULASH",
"LAMSRUG",
"PERSKOP",
"STOVERIJ",
"WORSTJE",
"GEBRAAD",
"KOTELET",
"LAMSRIB",
"PRESKOP",
"REEBOUT",
"RIBSTUK",
"ROLLADE",
"ROLPENS",
"ROSBIEF",
"SHOARMA",
"SLAVINK",
"SOEPKIP",
"SPEKLAP",
"TARTAAR",
"HAMLAPJE",
"METWORST",
"MOUSSAKA",
"OSSETONG",
"OSSOBUCO",
"PARMAHAM",
"ROOKSPEK",
"ROOMPATE",
"ROOMSATE",
"SJASLIEK",
"SPARERIB",
"TAGLIATA",
"ZWEZERIK",
"BERLINER",
"BIEFSTUK",
"ESCALOPE",
"FRIKADEL",
"KLAPSTUK",
"LAMSBOUT",
"NIERSTUK",
"NIERTJES",
"ROLLENDE",
"SAUCISSE",
"SHOWARMA",
"STOOFLAP",
"ANDOUILLE",
"BALKENBRIJ",
"CASSEROLE",
"CASSOULET",
"KALFSTONG",
"KIPBURGER",
"LAMSZADEL",
"LEVERKAAS",
"OSSENTONG",
"EENDVOGEL",
"ENTRECOTE",
"FRICASSEE",
"GALANTINE",
"GEHAKTBAL",
"HAMBURGER",
"HOOFDKAAS",
"KARBONADE",
"KATENSPEK",
"KNAKWORST",
"OSSENHAAS",
"PLOKWORST",
"ROASTBEEF",
"ROOKWORST",
"RUNDERLAP",
"RUNDVLEES",
"SCHNITZEL",
"SPARERIBS",
"SUDDERLAP",
"SUKADELAP",
"TOURNEDOS",
"UIERBOORD",
"BLINDEVINK",
"BLOEDWORST",
"EENDENBOUT",
"FRICANDEAU",
"HAZENPEPER",
"KALFSLAPJE",
"LAMSGEHAKT",
"LAMSOESTER",
"LEVERWORST",
"PEKELVLEES",
"PEPERSTEAK",
"SUKADESTUK",
"WILDPASTEI",
"BOERENPATE",
"BRAADVLEES",
"BRAADWORST",
"KIPROLLADE",
"LENDENSTUK",
"OSSENVLEES",
"REEGEBRAAD",
"RUNDERHAAS",
"STOOFLAPJE",
"GEHAKTBROOD",
"LAMSSCHOTEL",
"LEVERPASTEI",
"TONGENWORST",
"VOGELNESTJE",
"CASSELERRIB",
"KALFSGEHAKT",
"KALFSOESTER",
"KASSELERRIB",
"LAMSKOTELET",
"RUNDERLEVER",
"SCHAPENBOUT",
"KALFSROLLADE",
"KIPSCHNITZEL",
"RIBKARBONADE",
"GEHAKTBALLEN",
"KALFSKOTELET",
"RUNDERGEHAKT",
"VARKENSLEVER",
"VARKENSVLEES",
"BOOMSTAMMETJE",
"CHATEAUBRIAND",
"LENDEBIEFSTUK",
"GEHAKTSCHOTEL",
"HAASKARBONADE",
"LAMSKARBONADE",
"RUNDERROLLADE",
"VARKENSGEHAKT",
"VARKENSOESTER",
"KALFSFRICANDEAU",
"WIENERSCHNITZEL",
"PAARDENROOKVLEES",
"STRUISVOGELBIEFSTUK");
private static final List<String> sauzen = Arrays.asList(
"AIOLI",
"ANDALOUSESAUS",
"BEARNAISESAUS",
"BECHAMELSAUS",
"BLACKWELLSAUS",
"BOLOGNESESAUS",
"CHUTNEY",
"CHIMICHURRI",
"COCKTAILSAUS",
"CURRY",
"CURRYKETCHUP",
"DIPSAUS",
"DRESSING",
"FRITESSAUS",
"GUACAMOLE",
"GROENE SAUS",
"HARISSA",
"HOLLANDAISESAUS",
"CHINESE HOISINSAUS",
"HUMMUS",
"JOPPIESAUS",
"KAASSAUS",
"KETJAP",
"KNOFLOOKSAUS",
"MADERASAUS",
"MAMMOETSAUS",
"MANGOCHUTNEY",
"MAYONAISE",
"MOJO",
"MOSTERD",
"OESTERSAUS",
"PESTO",
"PINDASAUS",
"PICCALILLY",
"PIRIPIRI",
"ROUX",
"SALSA",
"SALSA VERDE",
"SAMBAL",
"SAMOERAISAUS",
"SATESAUS",
"ROQUEFORTSAUS",
"STOOFVLEESSAUS",
"STROGANOFFSAUS",
"TABASCO",
"TAHINI",
"TAPENADE",
"TARTAARSAUS",
"TOMATENKETCHUP",
"TOMATENSAUS",
"TOMOTTOSAUS",
"TZATZIKI",
"VINAIGRETTE",
"VISSAUS",
"VLAMMENSAUS",
"VLEESJUS",
"WHISKYSAUS",
"WITTE SAUS",
"WORCESTERSAUS",
"ZULUSAUS");
private static final String GOAL = "818028943427c1157af2aa007a4ab802cb53312a";
public static void main(String[] args) throws NoSuchAlgorithmException {
System.out.println(str2hash("92.111.40.218 AARDAPPEL GROENTE VLEES SAUS"));
for (String aardappel : aardappels) {
System.out.println("@" + aardappel);
for (String groente : groentes) {
for (String vlees : vlezen) {
for (String saus : sauzen) {
if (str2hash(String.format("92.111.40.218 %s %s %s %s", aardappel, groente, vlees, saus)).equals(GOAL)) {
System.out.println(aardappel);
System.out.println(groente);
System.out.println(vlees);
System.out.println(saus);
}
}
}
}
}
}
private static String str2hash(String s) throws NoSuchAlgorithmException {
// MessageDigest md5 = MessageDigest.getInstance("SHA256");
// md5.update(s.getBytes());
//byte[] digest = md5.digest();
// return String.format("%032x", new BigInteger(1, md5.digest()));
byte[] digest = Ripemd160.getHash(s.getBytes());
return String.format("%032x", new BigInteger(1, digest));
}
}