# FTP client !



## Manuela (2. Dez 2007)

Hallo,
ich habe einen FTP client geschrieben der auch funktioniert, solange man das kennwort nicht mit md5 verschlüsselt.

dann bekomme ich immer 

diese Fehlermeldung:




java.nio.charset.UnmappableCharacterException: Input length = 1
        at java.nio.charset.CoderResult.throwException(CoderResult.java:261)
        at java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:781)
        at org.ftp4che.FTPConnection.sendCommand(FTPConnection.java:351)
        at org.ftp4che.impl.NormalFTPConnection.connect(NormalFTPConnection.java:77)
        at desktopapplication6.ConnectTest.laufen(ConnectTest.java:112)
        at desktopapplication6.Einwahl.jButton2ActionPerformed(Einwahl.java:322)
        at desktopapplication6.Einwahl.access$000(Einwahl.java:23)
        at desktopapplication6.Einwahl$1.actionPerformed(Einwahl.java:98)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6038)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
        at java.awt.Component.processEvent(Component.java:5803)
        at java.awt.Container.processEvent(Container.java:2058)
        at java.awt.Component.dispatchEventImpl(Component.java:4410)
        at java.awt.Container.dispatchEventImpl(Container.java:2116)
        at java.awt.Component.dispatchEvent(Component.java:4240)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
        at java.awt.Container.dispatchEventImpl(Container.java:2102)
        at java.awt.Window.dispatchEventImpl(Window.java:2429)
        at java.awt.Component.dispatchEvent(Component.java:4240)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

der FTP -server benutze ich den Serv-U der ist Rechner befindet sich in einer anderen Stadt aber ich komme mit vnc 
auf den Rechner und kann sehen wie sich meine IP(Internet Ip) sich an den Server anmelden will.
schalte ich die MD5 verschlüsselung(ist nur für Kennwort)aus komme ich auch wieder auf den Server drauf.
was kann ich noch machen???






> public static String getCheckSum(String str, String algo){
> 
> try {
> MessageDigest md = MessageDigest.getInstance(algo);
> ...







> pt.setProperty("user.password", getCheckSum(pass,"MD5"));
> connection = FTPConnectionFactory.getInstance(pt);
> 
> connection.connect();  // an dieser Stelle kommt die Exception



Gruß Manuela


----------



## HoaX (3. Dez 2007)

Manuela hat gesagt.:
			
		

> ```
> return new String (md.digest());
> ```



das ist dein fehler. hast du dir den string mal ausgeben lassen? 

du musst die einzelnen bytes zu einem hexstring umwandeln. es sollte dann ein string ala "FD03C10A43321..." rauskommen.

btw: in welchem rfc ist denn der md5-login definiert? wäre mir neu dass das ein standard ist ...


----------



## Manuela (3. Dez 2007)

Hallo,
also wie ich ohen schon erwähnt hatte ist es der Serv-U. das ist mein Test Rechner aber der eigendliche FTP -Server
hat eine 
Passives ftp mit ssl Verschlüsselung "implicit" connect auf port 990
und das Passwort (MD5 verschlüsselt).

bei einem Testserver komme ich auch rauf 
http://www.secureftp-test.com/
komme ich auch ohne Problem rauf.

aber auf den Server auf dem ich muß geht es nicht wegen der MD5 Verschlüsselung.

ich weiß nicht mehr was ich noch machen kann.

HoaX habe ich schon gemacht ich bekomme auch den HexString raus aber keinen Kontakt zum Server.

Gruß Manuela


----------

