import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.security.Key; import java.security.KeyStore; import java.security.KeyStoreException; import java.security.UnrecoverableKeyException; import java.security.cert.Certificate; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; public class TestKeyStore{ public static void main( String[] args ) throws IOException, KeyStoreException{ KeyStore ks = KeyStore.getInstance( KeyStore.getDefaultType() ); boolean passwordFromKeyStoreFound = false; for( String pass : getAvailablePasswords() ){ FileInputStream fis = null; try{ fis = new FileInputStream( "nemo_keystore" ); ks.load( fis, pass == null ? null : pass.toCharArray() ); passwordFromKeyStoreFound = true; System.out.println( "Password from keystore: " + pass ); System.out.println( "Size: " + ks.size() ); System.out.println( "Type: " + ks.getType() ); System.out.println( "Aliases:" ); Enumeration<String> aliasese = ks.aliases(); while( aliasese.hasMoreElements() ){ String alias = aliasese.nextElement(); System.out.println( alias ); System.out.println( "----------- certificate info ----------" ); Certificate cert = ks.getCertificate( alias ); System.out.println( cert ); System.out.println( "Certificate type: " + cert.getType() ); System.out.println( "Public key: " + cert.getPublicKey() ); System.out.println( "------------ password known bruteforce ------------" ); for( String availablepass : getAvailablePasswords() ){ try{ ks.getKey( alias, availablepass == null ? null : availablepass.toCharArray() ); System.out.println( availablepass + " valid!!!!!" ); } catch( UnrecoverableKeyException e ){ } } System.out.println( "------------ password bruteforce ------------" ); List<String> passwords = new ArrayList<String>(); FileInputStream pfis = new FileInputStream( "pass.txt" ); BufferedReader pbr = new BufferedReader( new InputStreamReader( pfis ) ); for( ;; ){ String line = pbr.readLine(); if( line == null ){ break; } passwords.add( line ); } System.out.println( "read of dictionary completed. start bruteforce " ); for( String password : passwords ){ try{ Key key = ks.getKey( alias, password == null ? null : password.toCharArray() ); System.out.println( "!!! Password for " + alias + " found. It's: " + password + " !!!" ); System.out.println( key ); } catch( UnrecoverableKeyException e ){ } } } } catch( Exception e ){ } finally{ if( fis != null ){ fis.close(); } } if( passwordFromKeyStoreFound ){ break; } } System.out.println( "------------ end ------------" ); } public static List<String> getAvailablePasswords(){ return new ArrayList<String>(){ private static final long serialVersionUID = 1L; { add( "tallink12" ); add( "Tallink12" ); add( "tallink13" ); add( "Tallink13" ); add( "tallink12345" ); add( "Tallink12345" ); add( "12345" ); add( "qwerty12345" ); add( "qwerty12" ); add( "tallink" ); add( null ); add( "" ); add( "Passw0rd1" ); add( "Passw0rd" ); } }; } }
Показаны сообщения с ярлыком java. Показать все сообщения
Показаны сообщения с ярлыком java. Показать все сообщения
понедельник, 6 января 2014 г.
Подбор паролей к кейстору
словарь pass.txt скачивается с тырнета
пятница, 5 октября 2012 г.
Spring 3.1 + JPA + DBUnit, Gradle, Maven
В этой коротенькой статье-примере я хотел бы поделиться недавно приобретенным опытом, а именно:
- Относительно новой возможности Spring Framework-a создавать так называемую Java based configuration, используя для этого фактически обычные
POJOобъекты с вкраплением анатаций от спринга
- Написание Unit-тестов для тестировании базы данных. Рассмотрится несколько вариантов. Первый - тестирование базы с помощью Spring test context framework-a. Второй вариант - контекст, как в и первом случае, будет создавать SpringJUnit4ClassRunner.class из набора вышеупомянутого фреймворка, но для тестирования будет использоваться библиотека DBUnit.
- Вначале проект специально был создан с использованием Maven-a, чтобы потом попробовать Gradle. Расскажу о полученных впечатлениях от Gradle и покажу конфигурацию того и другого.
вторник, 25 сентября 2012 г.
user lacks privilege or object not found
Замучался до смерти с такой ошибкой:
Решается следующим образом - в настройку EntityManagerFactory бина в конфиге нужно добавить JPA найтройку "hibernate.hbm2ddl.auto" со значением "create", если вы используету, как и я, PersistanceProvider org.hibernate.ejb.HibernatePersistence. В таком случае база данных будет создаваться автоматически при инициализации sessionFactory в хибирнейте (http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/session-configuration.html#configuration-optionall).
org.hibernate.exception.SQLGrammarException: user lacks privilege or object not found: PERSON at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:82) at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110) at org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:129) at org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81) at $Proxy36.executeQuery(Unknown Source) at org.springframework.jdbc.core.JdbcTemplate$1QueryStatementCallback.doInStatement(JdbcTemplate.java:441) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:396) at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:456) at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:464) at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:472) at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:477) at org.springframework.jdbc.core.JdbcTemplate.queryForInt(JdbcTemplate.java:486) at org.springframework.jdbc.core.simple.SimpleJdbcTemplate.queryForInt(SimpleJdbcTemplate.java:117) at org.springframework.test.jdbc.SimpleJdbcTestUtils.countRowsInTable(SimpleJdbcTestUtils.java:56) at org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests.countRowsInTable(AbstractTransactionalJUnit4SpringContextTests.java:115) at com.logica.tutorial.AnotherTest.some2Test(AnotherTest.java:32) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74) at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:83) at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) Caused by: java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: PERSON at org.hsqldb.jdbc.Util.sqlException(Unknown Source) at org.hsqldb.jdbc.Util.sqlException(Unknown Source) at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source) at org.hsqldb.jdbc.JDBCStatement.executeQuery(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:122) ... 41 more Caused by: org.hsqldb.HsqlException: user lacks privilege or object not found: PERSON at org.hsqldb.error.Error.error(Unknown Source) at org.hsqldb.error.Error.error(Unknown Source) at org.hsqldb.SchemaManager.getTable(Unknown Source) at org.hsqldb.ParserDQL.readTableName(Unknown Source) at org.hsqldb.ParserDQL.readTableOrSubquery(Unknown Source) at org.hsqldb.ParserDQL.XreadTableReference(Unknown Source) at org.hsqldb.ParserDQL.XreadFromClause(Unknown Source) at org.hsqldb.ParserDQL.XreadTableExpression(Unknown Source) at org.hsqldb.ParserDQL.XreadQuerySpecification(Unknown Source) at org.hsqldb.ParserDQL.XreadSimpleTable(Unknown Source) at org.hsqldb.ParserDQL.XreadQueryPrimary(Unknown Source) at org.hsqldb.ParserDQL.XreadQueryTerm(Unknown Source) at org.hsqldb.ParserDQL.XreadQueryExpressionBody(Unknown Source) at org.hsqldb.ParserDQL.XreadQueryExpression(Unknown Source) at org.hsqldb.ParserDQL.compileCursorSpecification(Unknown Source) at org.hsqldb.ParserCommand.compilePart(Unknown Source) at org.hsqldb.ParserCommand.compileStatements(Unknown Source) at org.hsqldb.Session.executeDirectStatement(Unknown Source) at org.hsqldb.Session.execute(Unknown Source) ... 48 more
Решается следующим образом - в настройку EntityManagerFactory бина в конфиге нужно добавить JPA найтройку "hibernate.hbm2ddl.auto" со значением "create", если вы используету, как и я, PersistanceProvider org.hibernate.ejb.HibernatePersistence. В таком случае база данных будет создаваться автоматически при инициализации sessionFactory в хибирнейте (http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/session-configuration.html#configuration-optionall).
@Bean @Autowired public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource) { LocalContainerEntityManagerFactoryBean bean = new LocalContainerEntityManagerFactoryBean(); Map<String, Object> jpaPropertyMap = new HashMap<String, Object>(); jpaPropertyMap.put("hibernate.dialect", "org.hibernate.dialect.HSQLDialect"); jpaPropertyMap.put("hibernate.show_sql", true); jpaPropertyMap.put("hibernate.format_sql", true); jpaPropertyMap.put("hibernate.hbm2ddl.auto", "create"); bean.setPersistenceProviderClass(HibernatePersistence.class); bean.setDataSource(dataSource); bean.setJpaPropertyMap(jpaPropertyMap); bean.setPackagesToScan(new String[] { "com.logica.tutorial.model" }); return bean; }
вторник, 8 мая 2012 г.
Автоматическое добавление имени разработчика в Elipse при создании новых типов и методов.
eclipse.ini
-Duser.name=George Zalizko
Preferences -> Java -> Code Style -> Code Templates -> Comments
Edit the Comment: Types
/**
* @author ${user}, ${date} ${time}
*
* ${tags}
*/
Automatically add comments for new types and methods
галочка тут.
-Duser.name=George Zalizko
Preferences -> Java -> Code Style -> Code Templates -> Comments
Edit the Comment: Types
/**
* @author ${user}, ${date} ${time}
*
* ${tags}
*/
Automatically add comments for new types and methods
галочка тут.
воскресенье, 15 апреля 2012 г.
Qualification Round 2012. Problem A. Speaking in Tongues
Первый раз немножко поучаствовал в Google Code Jam. К сожаленью плотный график из разных дел не разрешил весь уикенд потратить на решение головоломок от гугла, но очень понравилось. Вот так решил первую задачку:
надеюсь, они меня возьмут на работу :D
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.TreeMap; public class Main { public static void main(String[] args) throws Exception { TreeMap<Character, Character> map = getMap(); File inputFile = new File("A-small-attempt0.in"); FileInputStream fileInputStream = new FileInputStream(inputFile); BufferedReader reader = new BufferedReader(new InputStreamReader(fileInputStream)); File outputFile = new File("out.txt"); FileOutputStream fileOutputStream = new FileOutputStream(outputFile); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(fileOutputStream)); Integer t = Integer.valueOf(reader.readLine()); String line = null; for (int i = 1; (line = reader.readLine()) != null && i <= t && i <= 30; i++) { if (i != 1) { writer.newLine(); } writer.write("Case #" + i + ": "); for (int j = 0; j < line.length() && j <= 100; j++) { Character c = line.charAt(j); writer.write(map.get(c)); } } reader.close(); writer.close(); } private static TreeMap<Character, Character> getMap() { TreeMap<Character, Character> map = new TreeMap<Character, Character>(); map.put('a', 'y'); map.put('o', 'e'); map.put('z', 'q'); map.put('q', 'z'); String i = "ejp mysljylc kd kxveddknmc re jsicpdrysirbcpc ypc rtcsra dkh wyfrepkym veddknkmkrkcdde kr kd eoya kw aej tysr re ujdr lkgc jv"; String o = "our language is impossible to understandthere are twenty six factorial possibilitiesso it is okay if you want to just give up"; for (int n = 0; n < i.length(); n++) { map.put(i.charAt(n), o.charAt(n)); } return map; } @SuppressWarnings("unused") private static void printMap(Map<Character, Character> map) { Iterator<Entry<Character, Character>> iterator = map.entrySet().iterator(); int i = 0; while (iterator.hasNext()) { Entry<Character, Character> entry = iterator.next(); System.out.println(++i + ". " + entry.getKey() + " -> " + entry.getValue()); } } }
надеюсь, они меня возьмут на работу :D
вторник, 27 апреля 2010 г.
2010 joop 2 ylesanne
Два пакета. Первый:
и второй. для тестирования задания:
package Person; import java.util.Collection; import java.util.Iterator; import java.util.ArrayList; /* * @author GEORGII ZALIZKO 073896 */ public class Person implements Iterable<Person> { public String name; public Collection<Person> childs = new ArrayList<Person>(); private int found = 0; private Collection<Person> foundHeirs = new ArrayList<Person>(); public Person(String s) { name = s; } public Iterator<Person> iterator() { return childs.iterator(); } public boolean addChild (Person child) { return (childs.add(child)); } public int search(String name) { found = 0; recursion_search(this, name); return found; } void recursion_search(Person obj, String s) { Iterator<Person> iter = obj.childs.iterator(); while(iter.hasNext()) { Person person = (Person) iter.next(); recursion_search(person, s); if(person.name.equalsIgnoreCase(s)) found++; } } public Collection<Person> searchPersons(String name) { foundHeirs.removeAll(null); recursion_searchPersons(this, name); return foundHeirs; } void recursion_searchPersons(Person obj, String s) { Iterator<Person> iter = obj.childs.iterator(); while(iter.hasNext()) { Person person = (Person) iter.next(); recursion_searchPersons(person, s); if(person.name.equalsIgnoreCase(s)) foundHeirs.add(person); } } public void print() { Iterator<Person> iter = this.childs.iterator(); if(iter.hasNext()) { System.out.print("Person '" + this.name + "' have " + this.childs.size() + " children: "); while(iter.hasNext()) { Person person = (Person) iter.next(); System.out.print(person.name); if(iter.hasNext()) System.out.print(", "); } System.out.println("."); } } public boolean isGrandParent(Person obj) { for(Person p: obj) { if(p.equals(this)) return true; } return false; } public boolean isAncestor(Person obj) { for(Person p: this.childs) { if(p.equals(obj)) return true; } return false; } }
и второй. для тестирования задания:
package testPackage; import java.util.Iterator; import Person.*; /* * @author GEORGII ZALIZKO 073896 */ public class testimine { public static void main(String[] args) { Person George = new Person("George"); Person Alex = new Person("Alex"); Person David = new Person("David"); Person Marek = new Person("Marek"); Person Allan = new Person("Allan"); Person Steve = new Person("Steve"); Person Brad = new Person("Brad"); Person Brad2 = new Person("Brad"); George.addChild(Alex); George.addChild(David); George.addChild(Marek); Alex.addChild(Allan); Marek.addChild(Steve); Marek.addChild(Brad); Steve.addChild(Brad2); for (Person p: Marek) { System.out.println(p.name + "\t (" + p.toString() + ") has " + p.childs.size() + " children."); } System.out.println(); /* * Checking function isGrandParent() */ System.out.println("Marek is GrandParent of Brad? -- " + Brad.isGrandParent(Marek)); System.out.println("David is GrandParent of Brad? -- " + Brad.isGrandParent(David)); System.out.println(); /* * Checking function isAncestor() */ System.out.println("Marek is the sun of Brad? -- " + Brad.isAncestor(Marek)); System.out.println("Allan is the sun of Alex? -- " + Alex.isAncestor(Allan)); System.out.println(); /* * Checking function search() */ System.out.println("George have " + George.search("Brad") + " heirs with name 'Brad'."); System.out.println(); /* * Checking function searchPersons() */ System.out.println(Marek.searchPersons("Brad")); /* * Checking function print() */ System.out.println(); Marek.print(); System.out.println(); Iterator<Person> i1 = George.iterator(); System.out.println(i1.next()); System.out.println(i1.next()); Iterator<Person> i2 = George.iterator(); System.out.println(i2.next()); } }
Подписаться на:
Сообщения (Atom)