Показаны сообщения с ярлыком java. Показать все сообщения
Показаны сообщения с ярлыком java. Показать все сообщения

понедельник, 6 января 2014 г.

Подбор паролей к кейстору

словарь pass.txt скачивается с тырнета

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

            }
        };
    }
}

пятница, 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

Замучался до смерти с такой ошибкой:

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
галочка тут.

воскресенье, 15 апреля 2012 г.

Qualification Round 2012. Problem A. Speaking in Tongues

Первый раз немножко поучаствовал в Google Code Jam. К сожаленью плотный график из разных дел не разрешил весь уикенд потратить на решение головоломок от гугла, но очень понравилось. Вот так решил первую задачку:

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