اطلاعیه
کاربر گرامی
به انجمن برنامه نویسی AnswerCenter.ir خوش آمدید
برای استفاده از تمامی امکانات سایت لطفا در انجمن عضو شوید
-
تعداد ارسال ها
58 -
تاریخ عضویت
-
آخرین بازدید
-
روز های برد
1
آخرین بار برد hamed1212 در 1 آبان
hamed1212 یکی از رکورد داران بیشترین تعداد پسند مطالب است !
اعتبار در سایت
19 خوبدرباره hamed1212

-
درجه
کاربر سایت
- تاریخ تولد 19 آبان 1376
آخرین بازدید کنندگان نمایه
بلوک آخرین بازدید کننده ها غیر فعال شده است و به دیگر کاربران نشان داده نمیشود.
-
ارسال عکس از طریق سوکت tcp (اندروید استودیو و بیسیک)
hamed1212 پاسخی برای hamed1212 در یک سوال ارسال کرد در پرسش و پاسخ (بیسیک4اندروید)
آقا زحمت نکشید حل شد باید موقع انشیالیز کردن استریم در بیسیک از مد prefix استفاده کنم stream.InitializePrefix(NewSocket.InputStream,True,NewSocket.OutputStream,"stream") و اینکه موقع ارسال در اندروید استودیو سایز کل رو هم قبلش ارسال کنم اینجوری: dos!!.writeInt(out.size) dos!!.write(out,0,out.size) dos!!.flush() -
ارسال عکس از طریق سوکت tcp (اندروید استودیو و بیسیک)
hamed1212 یک سوال را ارسال کرد در پرسش و پاسخ (بیسیک4اندروید)
سلام خسته نباشید من میخواستم یه عکس رو از طریق سوکت tcp از اندروید استودیو به basic4android و basic4java ارسال کنم... کدهای ارسال رو از اندروید استودیو نوشتم و درست کار میکنه و درون بسیک هم برای دریافت درست کار میکنه ولی یه مشکلی که دارم اینه که اندروید استودیو فایل ارسالی رو به چندتا بخش که هر دفعه تعداد بخش ها فرق میکنه تقسیم میکنه و تو چند مرحله ارسال میکنه.. الان مشکلم همینجاست که تو چند مرحله ارسال میکنه و توی بسیک چجوری باید این بخش هارو بگیرم که تا اخر فایل رو دریافت کنم ؟ و اینکه هر جوری هم از اندروید استودیو ارسال میکنم توی این رویداد دریافت میشه : Sub stream_NewData (Buffer() As Byte) End Sub راهی هم هست که موقع ارسال از طریق اندروید استودیو ، توی بسیک از طریق این رویداد دریافت بشه ؟ Sub stream_NewStream (Dir As String, FileName As String) End Sub اینم کدهای ارسال در اندروید استودیو هست: import android.os.Handler import java.io.* import java.net.Socket import java.net.UnknownHostException class clientThread:Thread() { private var ip1:String="" private var port1:Int=5 private lateinit var handler: Handler var writer : PrintWriter? = null var dos:DataOutputStream?=null override fun run() { super.run() try { val socket = Socket(ip1, port1) if (socket.isConnected){ handler.sendMessage(handler.obtainMessage(0, "connected")) Thread { val output = socket?.getOutputStream() dos=DataOutputStream(output) writer = PrintWriter(output!!, true) val input = socket?.getInputStream() val buffer=ByteArray(1024) val res=ByteArrayOutputStream(1024) try { while(true){ val read = input.read(buffer) if (read == -1) { break } res.write(buffer, 0, read) handler.sendMessage( handler.obtainMessage( 0, socket.isConnected.toString() + res.toString("UTF-8") ) ) } } catch (e: IOException) { System.out.println(e) socket.close() input.close() writer?.close() } }.start() } } catch(u: UnknownHostException) { System.out.println(u) } catch(i:IOException) { System.out.println(i) } } fun setHandler(handler: Handler) { this.handler = handler } fun config(ip:String,port:Int){ ip1=ip port1=port } fun sendMessage(out:ByteArray) { dos!!.write(out) dos!!.flush() } override fun destroy() { } } -
دریافت تصویر بند انگشتی Thumbnail از آدرس
hamed1212 پاسخی برای majerajoo در یک سوال ارسال کرد در پرسش و پاسخ (اندروید استودیو)
$sec = 10; اینو فک کنم عددش تغییر بدین جلو عقب میگیره دیگه -
اینکریپت کردن بین اندروید استودیو و بیسیک
hamed1212 پاسخی برای hamed1212 در یک سوال ارسال کرد در پرسش و پاسخ (اندروید استودیو)
آقا حل شد اون کد جاوایی که من استفاده میکردم برای b4a بود که من داشتم داخل b4j میزدم.. کد جاوای b4j برای این کار اینه که به صورت جاوا آبجکت داخل بیسیک استفاده میشه میزارم شاید بدردتون بخوره: #If java import org.bouncycastle.crypto.PBEParametersGenerator; import org.bouncycastle.crypto.digests.SHA1Digest; import org.bouncycastle.crypto.engines.AESEngine; import org.bouncycastle.crypto.generators.PKCS12ParametersGenerator; import org.bouncycastle.crypto.modes.CBCBlockCipher; import org.bouncycastle.crypto.paddings.PKCS7Padding; import org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher; import org.bouncycastle.crypto.params.ParametersWithIV; private static final String KEYGEN_ALGORITHM = "PBEWITHSHAAND256BITAES-CBC-BC"; private static final String CIPHER_ALGORITHM = "AES/CBC/PKCS5Padding"; private static final byte[] SALT = { 12, 54, 23, 45, 23, 52, 12 }; private static final byte[] IV = { 116, 13, 72, -50, 77, 45, -3, -72, -117, 32, 23, 19, 72, 21, 111, 22 }; public static byte[] encrypt(String password,byte[] data) throws Exception { PKCS12ParametersGenerator pGen = new PKCS12ParametersGenerator(new SHA1Digest()); char[] passwordChars = password.toCharArray(); byte[] pkcs12PasswordBytes = PBEParametersGenerator.PKCS12PasswordToBytes(passwordChars); pGen.init(pkcs12PasswordBytes, SALT, 1024); CBCBlockCipher aesCBC = new CBCBlockCipher(new AESEngine()); ParametersWithIV aesCBCParams = new ParametersWithIV(pGen.generateDerivedParameters(256), IV); aesCBC.init(true, aesCBCParams); PaddedBufferedBlockCipher aesCipher = new PaddedBufferedBlockCipher(aesCBC, new PKCS7Padding()); aesCipher.init(true, pGen.generateDerivedParameters(256)); byte[] plainTemp = new byte[aesCipher.getOutputSize(data.length)]; int offset = aesCipher.processBytes(data, 0, data.length, plainTemp, 0); int last = aesCipher.doFinal(plainTemp, offset); byte[] plain = new byte[offset + last]; System.arraycopy(plainTemp, 0, plain, 0, plain.length); return plain; } public static byte[] decrypt(String password, byte[] data) throws Exception { PKCS12ParametersGenerator pGen = new PKCS12ParametersGenerator(new SHA1Digest()); char[] passwordChars = password.toCharArray(); byte[] pkcs12PasswordBytes = PBEParametersGenerator.PKCS12PasswordToBytes(passwordChars); pGen.init(pkcs12PasswordBytes, SALT, 1024); CBCBlockCipher aesCBC = new CBCBlockCipher(new AESEngine()); ParametersWithIV aesCBCParams = new ParametersWithIV(pGen.generateDerivedParameters(256), IV); aesCBC.init(false, aesCBCParams); PaddedBufferedBlockCipher aesCipher = new PaddedBufferedBlockCipher(aesCBC, new PKCS7Padding()); byte[] plainTemp = new byte[aesCipher.getOutputSize(data.length)]; int offset = aesCipher.processBytes(data, 0, data.length, plainTemp, 0); int last = aesCipher.doFinal(plainTemp, offset); byte[] plain = new byte[offset + last]; System.arraycopy(plainTemp, 0, plain, 0, plain.length); return plain; } #End If فقط برای استفاده از این کد این خط رو هم به بیسیک اضافه کنید: #AdditionalJar: bcprov-jdk15on-159 bcprov-jdk15on-159.jar باید دانلود بشه و داخل پوشه کتابخونه ریخته بشه- 4 پاسخ
-
- 2
-
-
اینکریپت کردن بین اندروید استودیو و بیسیک
hamed1212 پاسخی برای hamed1212 در یک سوال ارسال کرد در پرسش و پاسخ (اندروید استودیو)
import java.security.spec.KeySpec; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.PBEKeySpec; import javax.crypto.spec.SecretKeySpec; public class encrypter { private static final byte[] SALT = { 12, 54, 23, 45, 23, 52, 12 }; private static final byte[] IV = { 116, 13, 72, -50, 77, 45, -3, -72, -117, 32, 23, 19, 72, 21, 111, 22 }; public static byte[] decrypt(String password, byte[] data) throws Exception { SecretKeyFactory factory = SecretKeyFactory.getInstance("PBEWITHSHAAND256BITAES-CBC-BC"); KeySpec keySpec = new PBEKeySpec(password.toCharArray(), SALT, 1024, 256); SecretKey tmp = factory.generateSecret(keySpec); SecretKey secret = new SecretKeySpec(tmp.getEncoded(), "AES"); Cipher d = Cipher.getInstance("AES/CBC/PKCS5Padding"); d.init(2, secret, new IvParameterSpec(IV)); return d.doFinal(data); } public static byte[] encrypt(String password, byte[] data) throws Exception { SecretKeyFactory factory = SecretKeyFactory.getInstance("PBEWITHSHAAND256BITAES-CBC-BC"); KeySpec keySpec = new PBEKeySpec(password.toCharArray(), SALT, 1024, 256); SecretKey tmp = factory.generateSecret(keySpec); SecretKey secret = new SecretKeySpec(tmp.getEncoded(), "AES"); Cipher e = Cipher.getInstance("AES/CBC/PKCS5Padding"); e.init(1, secret, new IvParameterSpec(IV)); return e.doFinal(data); } } سلام.... ببخشید اقای شاهپیری من این کد رو از کتابخانه های بیسیک برداشتم و تو اندروید استودیو کاملا جواب میده عین همین استفاده کردم... ولی داخل بیسیک میخوام دوباره همینو استفاده کنم این ارور رو میده Caused by: java.security.NoSuchAlgorithmException: PBEWITHSHAAND256BITAES-CBC-BC SecretKeyFactory not available درضمن این فایلو هم اضافه کردم به بیسیک AdditionalJar: bcprov-jdk15on-159 میدونید مشکل از کجاس؟ داخل خود کتابخانه مربوطه بیسیک هم که دیکامپایل داشتم چیز خاصی نداشت همه ی ایمپورت هارو هم قرار دادم .. تعجم عینه که این کد تو اندروید استودیو خیلی عالی جواب داد ولی تو بیسیک که میزارم جواب نمیده .. توی بیسیک هم به این صورت میزارم و با جاوا ابجکت استفادش میکنم: #If java import java.security.spec.KeySpec; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.PBEKeySpec; import javax.crypto.spec.SecretKeySpec; private static final byte[] SALT = { 12, 54, 23, 45, 23, 52, 12 }; private static final byte[] IV = { 116, 13, 72, -50, 77, 45, -3, -72, -117, 32, 23, 19, 72, 21, 111, 22 }; public static byte[] decrypt(String password, byte[] data) throws Exception { SecretKeyFactory factory = SecretKeyFactory.getInstance("PBEWITHSHAAND256BITAES-CBC-BC"); KeySpec keySpec = new PBEKeySpec(password.toCharArray(), SALT, 1024, 256); SecretKey tmp = factory.generateSecret(keySpec); SecretKey secret = new SecretKeySpec(tmp.getEncoded(), "AES"); Cipher d = Cipher.getInstance("AES/CBC/PKCS5Padding"); d.init(2, secret, new IvParameterSpec(IV)); return d.doFinal(data); } public static byte[] encrypt(String password, byte[] data) throws Exception { SecretKeyFactory factory = SecretKeyFactory.getInstance("PBEWITHSHAAND256BITAES-CBC-BC"); KeySpec keySpec = new PBEKeySpec(password.toCharArray(), SALT, 1024, 256); SecretKey tmp = factory.generateSecret(keySpec); SecretKey secret = new SecretKeySpec(tmp.getEncoded(), "AES"); Cipher e = Cipher.getInstance("AES/CBC/PKCS5Padding"); e.init(1, secret, new IvParameterSpec(IV)); return e.doFinal(data); } #End If اگه میشه یه راهنمایی کنید از صبح تالا دور اینم اوکی نشده هنوز... من اماده خور نیستم که از کتابخونه های اماده استفاده کنم میخوام یه چیزی هم یاد بگیرم اگه کمک کنین ممنون میشم -
اینکریپت کردن بین اندروید استودیو و بیسیک
hamed1212 پاسخی برای hamed1212 در یک سوال ارسال کرد در پرسش و پاسخ (اندروید استودیو)
ممنون از این استفاده کردم #If java import java.security.SecureRandom; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; public static byte[] generateKey(String password) throws Exception { byte[] keyStart = password.getBytes("UTF-8"); KeyGenerator kgen = KeyGenerator.getInstance("AES"); SecureRandom sr = SecureRandom.getInstance("SHA1PRNG"); sr.setSeed(keyStart); kgen.init(128, sr); SecretKey skey = kgen.generateKey(); return skey.getEncoded(); } public static byte[] encodeFile(byte[] key, byte[] fileData) throws Exception { SecretKeySpec skeySpec = new SecretKeySpec(key, "AES"); Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE, skeySpec); byte[] encrypted = cipher.doFinal(fileData); return encrypted; } public static byte[] decodeFile(byte[] key, byte[] fileData) throws Exception { SecretKeySpec skeySpec = new SecretKeySpec(key, "AES"); Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.DECRYPT_MODE, skeySpec); byte[] decrypted = cipher.doFinal(fileData); return decrypted; } #End If -
اینکریپت کردن بین اندروید استودیو و بیسیک
hamed1212 یک سوال را ارسال کرد در پرسش و پاسخ (اندروید استودیو)
سلام خسته نباشید.. از دوستان برنامه نویس اندروید استودیو کسی قطعه کدی داره که بتونم مثلا تو اندروید استودیو یه چیزیو اینکریپت کنم بعدش توی بیسیک 4 اندروید یا بیسیک 4 جاوا بتونم اونو دیکریپت کنم ؟ یا برعکس؟ -
سلام اقای مهدی نژاد ... میگم جدا از این بیسیک کلا میشه تو اندروید با استفاده از socket io فایل فرستاد؟ تا حدی میشه فایلو به base64 تبدیل کرد و فرستاد و اونور تبدیلش کرد دوباره ... ولی برا فایلای بزرگ چی؟ درون خود node js میشه از socket.io-stream استفاده کرد ولی توی اندروید هرچی گشتم مثالی در این باره نیس یه جا خوندم فقط که این کتابخونه فقط برای همون node js هست و توی اندروید فعلا نیس و باید برای فرستادن فایلای بزرگ اونو با کتابخانه ی های http اول پست کنم بعد لینک دانلودو ارسال کنم ... ایا این راه درستیه؟ راهی نیس بشه فایلای بزگ هم مستقیم با همون node js بفرستم ؟
-
hamed1212 تصویر نمایه خود را تغییر داد
-
روش خروجی گرفت سایت های apk ساز
hamed1212 پاسخی برای حسین شیخ بارانی در یک سوال ارسال کرد در پرسش و پاسخ (بیسیک4اندروید)
سلام...یه توضیح مختصری میدم که بیاد تو دستت چقدر دنگ و فنگ داره!!!!! اون چیزی که توی نظر منه اینه برای سایت سازنده برنامه اندروید: یه بیلدر برنامه با استفاده از ریسورس ها و ابزار های آماده مثل apktool بسازی(این ابزار هم میتونه دیکامپایل کنه و هم کامپایل کنه و هم بنظرم ساین کنه) و به وسیله ی اون برنامه ای که مخوای هر بار ساخته بشه رو دیکامپایلش کنی (من با برنامه b4j یه بیلدر ساختم نگو نمیشه)(مهم نیس از چه محیط برنامه نویسی برای برنامه ساختن استفاده کنی ولی بهتره پایتون باشه یا همونی b4j) حالا با این برنامه هر بار بیای اسم ایکن و .... رو جایگزین کنی توی فایلای دیکامپایل شده ی اون برنامه و دوباره اونو اول کامپایل کنی و بعدش اونو ساین کنی. خب اینجا تقریبا بیلدر تموم شده حالا با استفاده از همون بیلدر بیای یه سایت رو بالا بیاری!!! -
سلاااااااااام خسته نباشید اینقدر جواب سوالای منو نمیدین که خودم اخر حلش میکنم خخخ یه سوال داشتم من یه سرویس میسازم توی اندروید استودیو ولی تا موقعی که برنامه باز هست کار میکنه وقتی میبندمش دیگه کار نمیکنه چجوری میتونم این سرویس رو بسازم که مثل basic4android یه startserviceAt داشته باشه که بگم هر ده ثانیه مثلا سرویس رو دوباره اجرا کن، خیلی نیاز دارم میشه جواب بده یه نفر؟ ممنون میشم
-
برگرداندن مقدار response با کتاخانه volley (توسط خودم حل شد)
hamed1212 پاسخی برای hamed1212 در یک سوال ارسال کرد در پرسش و پاسخ (اندروید استودیو)
مشکل با فراخوانی تابع در اکتیویتی مورنظر حل شد کسی این مشکلو داشت بگه راهنماییش میکنم -
برگرداندن مقدار response با کتاخانه volley (توسط خودم حل شد)
hamed1212 یک سوال را ارسال کرد در پرسش و پاسخ (اندروید استودیو)
سلام.... من با زبان کتلین تو اندروید استودیو کار میکنم و با استفاده از کتابخانه volley یه درخواست post رو ارسال میکنم و response اون درخواست هم دریافت میکنم و مشکلی ندارم... من اومدم یه ماژول کلاس کاتلین ساختم و و تابع request رو تو اون کلاس قرار دادم.. حالا داخل اکتیویتی هم اون کلاس رو فراخوانی میکنم و اجرا میکنم تا اینجا مشکلی ندارم.. الان مشکلم اینه که چجوری میتونم مقدار دریافتی از response رو که توی کلاس دریافتش میکنم به اکتیویتی برگردونم؟؟؟؟ چون یه جورایی نمیشه داخل ثسمت response از return استفاده کرد.. فک کنم باید از callback یا همون interface استفاده کنم ولی اصلا هرکار میکنم بلد نمیشم که انجامش بدم میشه یه راهنمایی کنین ؟ ممنون -
جابه جا شدن ویو ها در لیوت بعداز خروجی گرفتن(مبتدیم)
hamed1212 پاسخی برای hamed1212 در یک سوال ارسال کرد در پرسش و پاسخ (اندروید استودیو)
ممنونم ازتون اقای شاهپیری و بقیه دوستان کا جاوا کار میکنن بنظرتون جاوا رو کار کنم یا کاتلین ؟ -
جابه جا شدن ویو ها در لیوت بعداز خروجی گرفتن(مبتدیم)
hamed1212 یک سوال را ارسال کرد در پرسش و پاسخ (اندروید استودیو)
سلام.. من تازه همین امروز شروع کردم اندروید استدیو یاد بگیرم اقا یه مشکلی دارم یه دکمه که میزارم توی لیوت مثلا وقتی اونو میارم سمت چپ صفحه لیوت، بعداز خروجی گرفتن روی گوشی رفته سمت راست!!!! یا میارم سمت راست بعدش رفته سمت چپ... اما باری بالا و پایینش مشکلی نیست اوکی هست.. میشه یه راهنمایی کنین؟ توی انواع لیوت ها هم این اتفاق میفته مثل relative layout و linear layout و constraint layout -
مشتی اگه میخوای فقط همین تایید کنه یوزر یا پسورد درسته میشه با ارسال post و تنظیم کوکی و هدر اینکارو کرد من تو پایتون نمونشو دارم تو بیسیک هم همونجوریه دیگه