I encountered a problem decoding text files.  Encryption works, but when the program is restarted, decryption throws an exception. The same similar Exception was thrown with apache.common.Base64. Maybe someone knows how to solve this?  private String decrypt(String encrypted) throws Exception {     Cipher cipher = getCipher(Cipher.DECRYPT_MODE);     //byte[] plainBytes = cipher.doFinal(Base64.decodeBase64(encrypted));      /*this line throw an exception*/                                           byte[] plainBytes = cipher.doFinal(Base64.getDecoder().decode(encrypted));      return new String(plainBytes); }  private Cipher getCipher(int cipherMode) throws Exception {     String encryptionAlgorithm = "AES";     SecretKeySpec keySpecification = new SecretKeySpec(             encryptionKey.getBytes("UTF-8"), encryptionAlgorithm);     Cipher cipher = Cipher.getInstance(encryptionAlgorithm);     cipher.init(cipherMode, keySpecification);      return cipher; }     Exception in thread "main" java.lang.NullPointerException at java.util.Base64$Decoder.decode(Base64.java:549) at edmaker.EdMaker.decrypt(EdMaker.java:148)   Listening on javadebug Not able to submit breakpoint MethodBreakpoint [fsiteratetest.FsIterateTest$1].visitFile '(Ljava/nio/file/Path;LBasicFileAttributes;)Ljava/nio/file/FileVisitResult;', reason: Breakpoint belongs to disabled source root 'C:\Users\win7p\Documents\NetBeansProjects\FsIterateTest\src'. See Window/Debugging/Sources. User program running User program stopped Debugger stopped on uncompilable source code. User program running User program finished
129
What are Null Pointer Exceptions (java.lang.NullPointerException) and what causes them?  What methods/tools can be used to determine the cause so that you stop the exception from causing the program to terminate prematurely?
5845
I tried to use java.io.FileReader to read some text files and convert them into a string, but I found the result is wrongly encoded and not readable at all.  Here's my environment:   Windows 2003, OS encoding: CP1252 Java 5.0   My files are UTF-8 encoded or CP1252 encoded, and some of them (UTF-8 encoded files)  may contain Chinese (non-Latin) characters.  I use the following code to do my work:     private static String readFileAsString(String filePath)     throws java.io.IOException{         StringBuffer fileData = new StringBuffer(1000);         FileReader reader = new FileReader(filePath);         //System.out.println(reader.getEncoding());         BufferedReader reader = new BufferedReader(reader);         char[] buf = new char[1024];         int numRead=0;         while((numRead=reader.read(buf)) != -1){             String readData = String.valueOf(buf, 0, numRead);             fileData.append(readData);             buf = new char[1024];         }         reader.close();         return fileData.toString();     }   The above code doesn't work. I found the FileReader's encoding is CP1252 even if the text is UTF-8 encoded. But the JavaDoc of java.io.FileReader says that:     The constructors of this class assume   that the default character encoding   and the default byte-buffer size are   appropriate.   Does this mean that I am not required to set character encoding by myself if I am using FileReader? But I did get wrongly encoded data currently, what's the correct way to deal with my situtaion? Thanks.
56951
I have been learning about Vigenere ciphers and then thought of this scenario: if a cryptographer encrypts a plaintext English message with a Vigenere cipher and then another cryptographer, who wants to ensure that the message is very secure, encrypts the ciphertext with another Vigenere cipher (with a different key length). Given only the ciphertext, how can you decrypt the message? A step by step explanation would be greatly appreciated.
92456
Alright, I have been doing the following (variable names have been changed):   FileInputStream fis = null; try {     fis = new FileInputStream(file);      ... process ...  } catch (IOException e) {     ... handle error ... } finally {     if (fis != null)         fis.close(); }    Recently, I started using FindBugs, which suggests that I am not properly closing streams.  I decide to see if there's anything that can be done with a finally{} block, and then I see, oh yeah, close() can throw IOException.  What are people supposed to do here?  The Java libraries throw too many checked exceptions.
9051
Check out the below program.   try {     for (String data : Files.readAllLines(Paths.get("D:/sample.txt"))){         String[] de = data.split(";");         System.out.println("Length = " + de.length);     } } catch (IOException e) {     e.printStackTrace(); }   Sample.txt:   1;2;3;4 A;B;; a;b;c;   Output:   Length = 4 Length = 2 Length = 3   Why second and third output is giving 2 and 3 instead of 4. In sample.txt file, condition  for 2nd and 3rd line is should give newline(\n or enter) immediately after giving delimiter for the third field. Can anyone help me how to get length as 4 for 2nd and 3rd line without changing the condition of the sample.txt file and how to print the values of de[2] (throws  ArrayIndexOutOfBoundsException)?
10138
I received the following exception when I was using the Regex class with the regular expression: (?'named a'asdf)  System.ArgumentException: parsing \"(?'named a'asdf)\" - Invalid group name: Group names must begin with a word character.   What is the problem with my regular expression?
70393
Is there any way to check whether a file is locked without using a try/catch block?    Right now, the only way I know of is to just open the file and catch any System.IO.IOException.
107801
I posted the code below to the Sun developers forum since I thought it was erroring (the true error was before this code was even hit).  One of the responses I got said it would not work and to throw it away.  But it is actually working.  It might not be the best code (I am new to Java) but is there something inherently "wrong" with it?   =============  CODE:   private static void ImportFromCsvToAccessTable(String mdbFilePath, String accessTableName  , String csvDirPath , String csvFileName ) throws ClassNotFoundException, SQLException {      Connection msConn = getDestinationConnection(mdbFilePath);     try{          String strSQL = "SELECT * INTO " + accessTableName + " FROM [Text;HDR=YES;DATABASE=" + csvDirPath + ";].[" + csvFileName + "]";         PreparedStatement selectPrepSt = msConn.prepareStatement(strSQL );         boolean result = selectPrepSt.execute();                 System.out.println( "result = " + result );      } catch(Exception e) {         System.out.println(e);     } finally {         msConn.close();     } }
82539
I'm doing a code review for a crypto solution that reuses the same key with a constant IV.  I want to demonstrate that this is not the right way to do things by figuring out the key and decrypting all of their test data.   I have access to lots of ciphertext. I know the same key is used. I know the same IV is used. Cipher is AES/CBC/PKCS5 Plaintext is 16 bytes. Ciphertext is 32 bytes (PKCS5 padding?) I can put whatever plaintext I want through the system and then get that ciphertext.   What's the high-level pseudo code or process to break this system?
111358
I'm just repurposing  for CryptoWall:     "If we know exact contents of some of the files prior to them being encrypted, would it be feasible to use those files to discover the private key?"   There's an answer posted for the case of CryptoLocker, but what about for CryptoWall?  I've read it is not as thorough, for instance not using the type of RSA encryption meant for large blocks of data.
68932
I am using the RSA Algorithm for encryption/decryption, and in order to decrypt the files you have to deal with some pretty big values. More specifically, things like   P = C^d % n   = 62^65 % 133   Now that is really the only calculations that ill be doing. I have tried using Matt McCutchen's BigInteger Library, but I am getting a lot of compiler errors during linking, such as:  encryption.o(.text+0x187):encryption.cpp: undefined reference to `BigInteger::BigInteger(int)'  encryption.o(.text+0x302):encryption.cpp: undefined reference to `operator&lt;&lt;(std::ostream&amp;, BigInteger const&amp;)'  encryption.o(.text$_ZNK10BigIntegermlERKS_[BigInteger::operator*(BigInteger const&amp;) const]+0x63):encryption.cpp: undefined reference to `BigInteger::multiply(BigInteger const&amp;, BigInteger const&amp;)'   So I was wondering what would be the best way to go about handling the really big integers that come out of the RSA Algorithm.  I heard that a possibility would be to declare your variables as a double long, so...  long long decryptedCharacter;   but I'm not sure exactly how big of an integer that can store.    Well for example, I try to compile and run the following program using dev C++:  #include iostream  #include "bigint\BigIntegerLibrary.hh"  using namespace std;  int main() {     BigInteger a = 65536;     cout &lt;&lt; (a * a * a * a * a * a * a * a);     return 0; }   then I get those errors.  Derek, I thought that by including the BigIntegerLibrary.hh file, that the compiler would go through and compile all the necessary files that it will use.  How should I try and compile the program above in order to resolve the linking errors?
74518
I have an application which sends a POST request to the VB forum software and logs someone in (without setting cookies or anything).  Once the user is logged in I create a variable that creates a path on their local machine.  c:\tempfolder\date\username  The problem is that some usernames are throwing "Illegal chars" exception. For example if my username was mas|fenix it would throw an exception..  Path.Combine( _         Environment.GetFolderPath(System.Environment.SpecialFolder.CommonApplicationData), _   DateTime.Now.ToString("ddMMyyhhmm") + "-" + form1.username)   I don't want to remove it from the string, but a folder with their username is created through FTP on a server. And this leads to my second question. If I am creating a folder on the server can I leave the "illegal chars" in? I only ask this because the server is Linux based, and I am not sure if Linux accepts it or not.  EDIT: It seems that URL encode is NOT what I want.. Here's what I want to do:  old username = mas|fenix new username = mas%xxfenix   Where %xx is the ASCII value or any other value that would easily identify the character.
22890
In Java, I have a String and I want to encode it as a byte array (in UTF8, or some other encoding). Alternately, I have a byte array (in some known encoding) and I want to convert it into a Java String. How do I do these conversions?
25016
I am getting the following error trying to read from a socket. I'm doing a readInt() on that InputStream, and I am getting this error. Perusing the documentation this suggests that the client part of the connection closed the connection. In this scenario, I am the server.  I have access to the client log files and it is not closing the connection, and in fact its log files suggest I am closing the connection. So does anybody have an idea why this is happening? What else to check for? Does this arise when there are local resources that are perhaps reaching thresholds?    I do note that I have the following line:  socket.setSoTimeout(10000);   just prior to the readInt(). There is a reason for this (long story), but just curious, are there circumstances under which this might lead to the indicated error? I have the server running in my IDE, and I happened to leave my IDE stuck on a breakpoint, and I then noticed the exact same errors begin appearing in my own logs in my IDE.  Anyway, just mentioning it, hopefully not a red herring. :-(
109806
I'm using an istream which could be stringstream, ifstream or a user-defined stream type and I need to know if, in the case of an ifstream, it was not opened in binary mode (so I can throw an exception). I have tried the following method:  if ((_is.flags() &amp; ios::binary) == 0)     throw exception(...)   but no exception is ever thrown. The test fails in this case because _is.flags() returns 0x201 and ios::binary is 0x20. Is there a way to find out if a stream was opened in text mode?
46094
I am trying to display a list of all files found in the selected directory (and optionally any subdirectories). The problem I am having is that when the GetFiles() method comes across a folder that it cannot access, it throws an exception and the process stops.  How do I ignore this exception (and ignore the protected folder/file) and continue adding accessible files to the list?  try {     if (cbSubFolders.Checked == false)     {         string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath);         foreach (string fileName in files)             ProcessFile(fileName);     }     else     {         string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.*", SearchOption.AllDirectories);         foreach (string fileName in files)             ProcessFile(fileName);     }     lblNumberOfFilesDisplay.Enabled = true; } catch (UnauthorizedAccessException) { } finally {}
43302
I have a complete XML document in a string and would like a Document object. Google turns up all sorts of garbage. What is the simplest solution? (In Java 1.5)  Solution Thanks to , I have settled on this implementation. It has the right level of input flexibility and exception granularity for me. (It's good to know if the error came from malformed XML - SAXException - or just bad IO - IOException.)  public static org.w3c.dom.Document loadXMLFrom(String xml)     throws org.xml.sax.SAXException, java.io.IOException {     return loadXMLFrom(new java.io.ByteArrayInputStream(xml.getBytes())); }  public static org.w3c.dom.Document loadXMLFrom(java.io.InputStream is)      throws org.xml.sax.SAXException, java.io.IOException {     javax.xml.parsers.DocumentBuilderFactory factory =         javax.xml.parsers.DocumentBuilderFactory.newInstance();     factory.setNamespaceAware(true);     javax.xml.parsers.DocumentBuilder builder = null;     try {         builder = factory.newDocumentBuilder();     }     catch (javax.xml.parsers.ParserConfigurationException ex) {     }       org.w3c.dom.Document doc = builder.parse(is);     is.close();     return doc; }