Store and restore byte array in ms sql – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Store and restore byte array in ms sql – Java – Fórum – Programujte.comStore and restore byte array in ms sql – Java – Fórum – Programujte.com

 

WhiteB1
~ Anonymní uživatel
1 příspěvek
28. 2. 2013   #1
-
0
-

 Ahoj,

potřeboval bych poradit s ukládáním pole byte do MS SQL databáze a jeho následným načtením opět do pole byte.

V MS SQL jsem si vytvořil tabulku sec se dvěma atributy 'ID_uzivatele' typu varchar(20) a 'salt' typu varbinary(50). V Javě potřebuju vygenerovaný byte[] salt uložit do db a následně ho z db zpět načíst do byte[] receivedSalt. Uložení i načtení samo o sobě proběhne, ale uložený salt se neshoduje s vyzvednutým. Mohl byste mi někdo poradit, co dělám špatně?



    import java.security.NoSuchAlgorithmException;
    import java.security.SecureRandom;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
     
     
    public class test {
     
        /**
         * @param args
         */
        public static void main(String[] args) {
            try {
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                Connection conn = DriverManager.getConnection("jdbc:odbc:JavaProject");
     
                byte[] salt = generateSalt();
     
                PreparedStatement insert = conn.prepareStatement("INSERT INTO sec VALUES ('id001', ?)");
                insert.setBytes(1, salt);
                insert.executeUpdate();
                insert.close();
                System.out.println("values are succesfully inserted to database");
     
                Statement select = conn.createStatement();
                ResultSet rs = select.executeQuery("SELECT salt FROM sec WHERE ID_uzivatele = 'id001'");
                rs = select.getResultSet();
     
                try {
                    while (rs.next()) {
                        byte[] receivedSalt = rs.getBytes("salt");
                        if (salt.equals(receivedSalt)) System.out.println("match");
                        else System.out.println("no match");
                    }
                }
                finally {
                    rs.close();
                    select.close();
                }
     
            } catch (ClassNotFoundException | SQLException | NoSuchAlgorithmException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
     
        public static byte[] generateSalt() throws NoSuchAlgorithmException {
            // VERY important to use SecureRandom instead of just Random
            SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
     
            // Generate a 8 byte (64 bit) salt as recommended by RSA PKCS5
            byte[] salt = new byte[8];
            random.nextBytes(salt);
     
            return salt;
        }
    }
Nahlásit jako SPAM
IP: 217.64.0.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 9 hostů

Podobná vlákna

Mp3 to byte array — založil kajikw

Parsování byte array — založil TomyB

J2ME record store — založil hráč

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý