Java Zipar com Senha

Estou usando as classes abaixo para compactar e descompactar arquivos zip no android, porem preciso de uma ajuda para como gerar o arquivo zipado e descompactar mas com uma senha ex: 123456?


//Método responsável em zipar o  banco de dados
   	public static boolean Zipar(String filename, String zipfile)
    {        
        
        try 
        {
            final int BUFFER = 8192;
            
            BufferedInputStream origin = null;
                        
            File outzip = new File(zipfile);
            if (outzip.exists())
                outzip.delete();
                        
              FileOutputStream dest = new FileOutputStream(zipfile); 
         
              ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(dest)); 
              
              byte data[] = new byte[BUFFER]; 

              String nomearquivo = filename.substring(filename.lastIndexOf("/") + 1);
              
              FileInputStream fi = new FileInputStream(filename);
              
              origin = new BufferedInputStream(fi, BUFFER);
              
              ZipEntry entry = new ZipEntry(nomearquivo);
              
              out.putNextEntry(entry);

              int count;                                           
              
              while ((count = origin.read(data, 0, BUFFER)) != -1) 
              {                  
                  out.write(data, 0, count);                   
              }
              
              origin.close();
              fi.close();
              out.flush();
              out.finish();
              out.close();              
                  
              return true;
            
        } catch (IOException ioe) {
            return false;            
        } 
        catch (Exception e)
        {
            return false;
        }
        
    }
   	
   	//Método responsável em descompactar o  banco de dados
    public static boolean UnZipar(String filename, String DestinyDir)
    {   	           	        
   	        try 
   	        {   	            
   	             final int BUFFER_SIZE = 4096;
   	              
   	              BufferedOutputStream bufferedOutputStream = null;
   	                 FileInputStream fileInputStream;
   	                 
   	                  fileInputStream = new FileInputStream(filename);
   	                  ZipInputStream zipInputStream 
   	                   = new ZipInputStream(new BufferedInputStream(fileInputStream));
   	                  ZipEntry zipEntry;
   	                  
   	                  while ((zipEntry = zipInputStream.getNextEntry()) != null){
   	                   
   	                   String zipEntryName = zipEntry.getName();
   	                   File file = new File(DestinyDir+"/" + zipEntryName);
   	                   
   	                   if (file.exists())
   	                       file.delete();
   	                       
   	                   byte buffer[] = new byte[BUFFER_SIZE];
   	                       
   	                   FileOutputStream fileOutputStream = new FileOutputStream(file);
   	                       
   	                   bufferedOutputStream  = new BufferedOutputStream(fileOutputStream, BUFFER_SIZE);
   	                       
   	                   int count;   	                       
   	                       
   	                   while ((count = zipInputStream.read(buffer, 0, BUFFER_SIZE)) != -1) 
   	                   {
   	                           bufferedOutputStream.write(buffer, 0, count);
   	                   }

   	                   bufferedOutputStream.flush();
   	                   bufferedOutputStream.close(); 
   	                   
   	                  }
   	                  zipInputStream.close();
   	                 
   	                  //deleta o arquivo zip
   	                  File file = new File(filename);
   	                  file.delete();
   	                  
   	              return true;
   	            
   	        } catch (IOException ioe) {
   	            return false;
   	        } 
   	        catch (Exception e)
   	        {
   	            return false;
   	        }
   	        
   	  }