| 
		
	
	
	
		
	Сообщений: 119 
	Тем: 16 
	Зарегистрирован: Nov 2009
	
 Репутация: 
69 
	
	
		Доброе время суток.Хроники:  Lieage ll Gracia Epilogue (L2Open-Team 1115) 
Возникла проблема при попытки войти на сервер, 
проблема сама в том, что когда я регистрирую аккаунт через сайт, то при попытки войти на сервер мне пишут "не верный пароль... ". 
Однако, если зарегать аккаунт через "SQLAccountManager", на сервер пускает    
Регистрацию писал сам, вот кусок кода, возможно проблема в кодировке base64_encode  :
 PHP код: <?php $ins = mysql_query("INSERT INTO `accounts` VALUES('$login','".base64_encode(pack('H*', sha1($pass)))."',
 '1','0','','1','','','','','','','".$_SESSION['user_id']."')",$link);
 
 
Помог ? Нажми: ![[Изображение: 3c8429feaee1.gif]](http://i040.radikal.ru/1011/91/3c8429feaee1.gif)  
	
	
	
		
	Сообщений: 6,450 
	Тем: 262 
	Зарегистрирован: Nov 2007
	
 Репутация: 
44,165 
	
	
		Там точно используется pack()?Лучше подсмотрите алгоритм хеширования в java\ru\l2open\accountmanager\
 
	
	
	
		
	Сообщений: 1,416 
	Тем: 44 
	Зарегистрирован: Mar 2010
	
 Репутация: 
2,310 
	
	
		А разве base64, а не MD5??
	 
	
	
	
		
	Сообщений: 6,450 
	Тем: 262 
	Зарегистрирован: Nov 2007
	
 Репутация: 
44,165 
	
	
		Credo, нет, там base64_encode(sha1()) просто возможно у raw_output = true
	 
	
	
	
		
	Сообщений: 290 
	Тем: 23 
	Зарегистрирован: Aug 2009
	
 Репутация: 
116 
	
	
		Base64.encodeBytes(newpass)
	 
	
	
	
		
	Сообщений: 119 
	Тем: 16 
	Зарегистрирован: Nov 2009
	
 Репутация: 
69 
	
	
		PROGRAMMATOR Написал:Там точно используется pack()? Я олгаритм хеширования взял из Moy-Web.
 
			java\ru\l2open\accountmanager\ 
Особо не понял смысла: PHP код: <?php package ru.l2open.accountmanager;
 
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.LineNumberReader;
 import java.io.PrintStream;
 import java.io.Reader;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import javolution.util.FastList;
 import ru.l2open.Base64;
 import ru.l2open.Config;
 import ru.l2open.L2DatabaseFactory;
 import ru.l2open.Server;
 
 public  class SQLAccountManager {
 
 private static String _uname;
 private static String _pass;
 private static String _level;
 private static String _mode;
 
 public SQLAccountManager ()
 public static void main(String[])
 private static void printAccInfo(String)
 private static void addOrUpdateAccount(String, String, String)
 private static void changeAccountLevel(String, String)
 private static void deleteAccount(String)
 static
 
 }
 
			Base64.java 
PHP код: <?php package ru.l2open;
 
 import java.io.BufferedReader;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 import java.io.OutputStream;
 import java.io.PrintStream;
 import java.io.Reader;
 import java.io.Serializable;
 import java.io.UnsupportedEncodingException;
 import java.util.zip.GZIPInputStream;
 import java.util.zip.GZIPOutputStream;
 import ru.l2open.util.StringUtil;
 
 public  class Base64 {
 
 public static final int NO_OPTIONS = 0;
 public static final int ENCODE = 1;
 public static final int DECODE = 0;
 public static final int GZIP = 2;
 public static final int DONT_BREAK_LINES = 8;
 private static final int MAX_LINE_LENGTH = 76;
 private static final byte EQUALS_SIGN = 61;
 private static final byte NEW_LINE = 10;
 private static final String PREFERRED_ENCODING = "UTF-8";
 private static final byte[] ALPHABET;
 private static final byte[] _NATIVE_ALPHABET;
 static final byte[] DECODABET;
 private static final byte WHITE_SPACE_ENC = 4294967291;
 private static final byte EQUALS_SIGN_ENC = 4294967295;
 
 public static void main(String[])
 private Base64 ()
 static byte[] encode3to4(byte[], byte[], int)
 static byte[] encode3to4(byte[], int, int, byte[], int)
 public static String encodeObject(Serializable)
 public static String encodeObject(Serializable, int)
 public static String encodeBytes(byte[])
 public static String encodeBytes(byte[], int)
 public static String encodeBytes(byte[], int, int)
 public static String encodeBytes(byte[], int, int, int)
 static int decode4to3(byte[], int, byte[], int)
 public static byte[] decode(byte[], int, int)
 public static byte[] decode(String)
 public static Object decodeToObject(String)
 static
 
 }
 
 
И если сделать два одинаковых аккаунта через сайт  и через SQLAccountManager  и сравнить пароли они обсалютно одинаковые  значит по смыслу получается что способ хеширования верный... в чем тогда странности ....
	 
Помог ? Нажми: ![[Изображение: 3c8429feaee1.gif]](http://i040.radikal.ru/1011/91/3c8429feaee1.gif) 
	
	
	
		
	Сообщений: 153 
	Тем: 22 
	Зарегистрирован: Feb 2010
	
 Репутация: 
25 
	
	
		расскажи sql о том в какие именно поля и что ты хочешь вставить
 insert into `accounts` (`login`, `password` и тп) VALUES ('$логин', '$password' и тп), да и что-то многовато у тебя полей для accounts
 |