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)