mohamad.sh91 0 ارسال شده در ۵ دی ۱۳۹۹ گزارش اشتراک گذاری ارسال شده در ۵ دی ۱۳۹۹ سلام دوستان من تعدادی تصویر داررم که برام مهمه کسی نتواند آنها را از برنامه ام کپی کند قصد دارم آن ها را رمزنگاری کنم و در برنامه قرار دهم و فقط در لحظه ی نمایش رمزگشایی شود من زیاد به الگوریتم های رمز نگاری وارد نیستم برای رمز گشایی قطعه کد زیر را پیدا کردم ولی نمیدانم با چه ابزاری و تنظیم چه پارامترهایی تصویر را رمزنگاری کنم و در برنامه قرار دهم تا با این کد رمزگشایی شود public Bitmap decrypt(String path, String password) throws IOException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException { FileInputStream fis = new FileInputStream(path); byte[] key = (AppConstants.salt + password).getBytes("UTF-8"); MessageDigest sha = MessageDigest.getInstance("SHA-1"); key = sha.digest(key); key = Arrays.copyOf(key, 16); SecretKeySpec sks = new SecretKeySpec(key, "AES"); Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.DECRYPT_MODE, sks); CipherInputStream cis = new CipherInputStream(fis, cipher); Bitmap bitmap = BitmapFactory.decodeStream(cis); cis.close(); return bitmap; } پیشنهاد هر ابزار آنلاین یا تحت ویندوز که بتونه کارم را راه بندازه کمک بزرگیه ممنونم نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
mohamad.sh91 0 ارسال شده در ۶ دی ۱۳۹۹ مالک گزارش اشتراک گذاری ارسال شده در ۶ دی ۱۳۹۹ هیچ کس پیشنهادی نداره؟؟؟ نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
Farzad Sarseifi 575 ارسال شده در ۷ دی ۱۳۹۹ گزارش اشتراک گذاری ارسال شده در ۷ دی ۱۳۹۹ از این کد استفاده کنید. ابتدا باید تصویرتون رو تبدیل به byte array کنید import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; public class MainClass { public static void main(String[] args) throws Exception { Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()); byte[] input = "www.p30droid.com".getBytes(); byte[] keyBytes = new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 }; SecretKeySpec key = new SecretKeySpec(keyBytes, "AES"); Cipher cipher = Cipher.getInstance("AES/ECB/PKCS7Padding", "BC"); System.out.println(new String(input)); // encryption pass cipher.init(Cipher.ENCRYPT_MODE, key); byte[] cipherText = new byte[cipher.getOutputSize(input.length)]; int ctLength = cipher.update(input, 0, input.length, cipherText, 0); ctLength += cipher.doFinal(cipherText, ctLength); System.out.println(new String(cipherText)); System.out.println(ctLength); // decryption pass cipher.init(Cipher.DECRYPT_MODE, key); byte[] plainText = new byte[cipher.getOutputSize(ctLength)]; int ptLength = cipher.update(cipherText, 0, ctLength, plainText, 0); ptLength += cipher.doFinal(plainText, ptLength); System.out.println(new String(plainText)); System.out.println(ptLength); } } نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
mohamad.sh91 0 ارسال شده در ۸ دی ۱۳۹۹ مالک گزارش اشتراک گذاری ارسال شده در ۸ دی ۱۳۹۹ در 15 ساعت قبل، Farzad Sarseifi گفته است : از این کد استفاده کنید. ابتدا باید تصویرتون رو تبدیل به byte array کنید import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; public class MainClass { public static void main(String[] args) throws Exception { Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()); byte[] input = "www.p30droid.com".getBytes(); byte[] keyBytes = new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 }; SecretKeySpec key = new SecretKeySpec(keyBytes, "AES"); Cipher cipher = Cipher.getInstance("AES/ECB/PKCS7Padding", "BC"); System.out.println(new String(input)); // encryption pass cipher.init(Cipher.ENCRYPT_MODE, key); byte[] cipherText = new byte[cipher.getOutputSize(input.length)]; int ctLength = cipher.update(input, 0, input.length, cipherText, 0); ctLength += cipher.doFinal(cipherText, ctLength); System.out.println(new String(cipherText)); System.out.println(ctLength); // decryption pass cipher.init(Cipher.DECRYPT_MODE, key); byte[] plainText = new byte[cipher.getOutputSize(ctLength)]; int ptLength = cipher.update(cipherText, 0, ctLength, plainText, 0); ptLength += cipher.doFinal(plainText, ptLength); System.out.println(new String(plainText)); System.out.println(ptLength); } } ممنون از پاسختون اینطور که من فهمیدم کد شما دو بخش برای انکریپت و دیکریپت دارد که احتمالا باید در دو تابع مختف باشد مشکل من اینجاست که تصاویر مورد بحث من در خود برنامه ساخته نمیشن بلکه از ابتدا داخل فایل نصبی برنامه هست حالا من ابزاری میخوام که بتونم فایل ها را (که تعدادشون زیاده تقریبا) روی کامپیوتر انکریپت کنم بعد در برنامه قرار بدهم و موقع اجرای برنامه اونا رمزگشایی بشوند پندتا ابزار آنلاین پیدا کردم ولی موقع رمزگشایی هیچ کدام درست گار نمیکنه و تصویر نمایش داده نمیشه نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .