hamed_ghorbani 61 ارسال شده در 18 آبان، ۱۳۹۸ اشتراک گذاری ارسال شده در 18 آبان، ۱۳۹۸ سلام خسته نباشید.. از دوستان برنامه نویس اندروید استودیو کسی قطعه کدی داره که بتونم مثلا تو اندروید استودیو یه چیزیو اینکریپت کنم بعدش توی بیسیک 4 اندروید یا بیسیک 4 جاوا بتونم اونو دیکریپت کنم ؟ یا برعکس؟ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
محمدرضا شاهپیری 5,491 ارسال شده در 18 آبان، ۱۳۹۸ اشتراک گذاری ارسال شده در 18 آبان، ۱۳۹۸ در 4 ساعت قبل، hamed1212 گفته است : سلام خسته نباشید.. از دوستان برنامه نویس اندروید استودیو کسی قطعه کدی داره که بتونم مثلا تو اندروید استودیو یه چیزیو اینکریپت کنم بعدش توی بیسیک 4 اندروید یا بیسیک 4 جاوا بتونم اونو دیکریپت کنم ؟ یا برعکس؟ از کتابخونه زیر میتونید استفاده کنید کلاسهای جاواشو لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
hamed_ghorbani 61 ارسال شده در 18 آبان، ۱۳۹۸ سازنده اشتراک گذاری ارسال شده در 18 آبان، ۱۳۹۸ ممنون از این استفاده کردم #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 لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
hamed_ghorbani 61 ارسال شده در 18 آبان، ۱۳۹۸ سازنده اشتراک گذاری ارسال شده در 18 آبان، ۱۳۹۸ 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 اگه میشه یه راهنمایی کنید از صبح تالا دور اینم اوکی نشده هنوز... من اماده خور نیستم که از کتابخونه های اماده استفاده کنم میخوام یه چیزی هم یاد بگیرم اگه کمک کنین ممنون میشم لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
hamed_ghorbani 61 ارسال شده در 19 آبان، ۱۳۹۸ سازنده اشتراک گذاری ارسال شده در 19 آبان، ۱۳۹۸ آقا حل شد اون کد جاوایی که من استفاده میکردم برای 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 باید دانلود بشه و داخل پوشه کتابخونه ریخته بشه لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
سوال
hamed_ghorbani 61
سلام خسته نباشید..
از دوستان برنامه نویس اندروید استودیو کسی قطعه کدی داره که بتونم مثلا تو اندروید استودیو یه چیزیو اینکریپت کنم بعدش توی بیسیک 4 اندروید یا بیسیک 4 جاوا بتونم اونو دیکریپت کنم ؟ یا برعکس؟
لینک ارسال
به اشتراک گذاری در سایت های دیگر
4 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.