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 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 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 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 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)); } }