Programming
QT and Linking Other Libraries
Jan 1st
I started QT and trying to write some small programs. In one program, I wanted to send mail. Found a code how to send mail in C++ (uses winsock library, not QT’s) and integrated it to my program. But how, I gives some bunch of errors. They were linking errors.
... /mailer.cpp:17: undefined reference to `WSAStartup@8' ...
Then a little research helped to me: This link.
Open your project file (<projectname>.pro):
and add the line:
LIBS += < WHERE-YOUR-LIBRARY-FILE-IS-LOCATED >
If your library is located in [QTDIR]\mingw\lib directory, you can just add the name of it (without its filename extension: .a):
LIBS += libwsock32If you are developing in linux, the default library directory(or one of the library directories) might be /usr/lib.
SHA512 hashing on Java
Nov 29th
Hello! For my school project, I had been tought of crypting passwords of users. Due to the fact that, SHA1 algorithm has security problems (link) , I have decided using a SHA2. SHA2 has 3 variants: SHA256, SHA384 and SHA512. While I was searching how to implement SHA2 on Java, I have found this link.
For SHA512 that code works:
import java.security.*; public class cryptotest { public static void main(String[] args) throws NoSuchAlgorithmException { MessageDigest md; String message = "password"; try { md= MessageDigest.getInstance("SHA-512"); md.update(message.getBytes()); byte[] mb = md.digest(); String out = ""; for (int i = 0; i < mb.length; i++) { byte temp = mb[i]; String s = Integer.toHexString(new Byte(temp)); while (s.length() < 2) { s = "0" + s; } s = s.substring(s.length() - 2); out += s; } System.out.println(out.length()); System.out.println("CRYPTO: " + out); } catch (NoSuchAlgorithmException e) { System.out.println("ERROR: " + e.getMessage()); } } }
If you want to hash password with SHA256, you can change the line:
md= MessageDigest.getInstance("SHA-512");
to
md= MessageDigest.getInstance("SHA-256");
For others:
md= MessageDigest.getInstance("MD5"); md= MessageDigest.getInstance("SHA"); md= MessageDigest.getInstance("SHA-1"); md= MessageDigest.getInstance("SHA-384");
