Freelance Programming Android Java
Development of Java code for RSA and AES encryption in Android applications
  If your company creates software for business  


        RSA and AES encryption
        
        Data encryption is the trend of your time. More and more web servers use data encryption. The addresses of such web servers are prefixed HTTPS. Large companies encrypt communication channels.
        Reliable encryption is enough to introduce once into the mechanism of working with data and your business will be reliably protected. It will be impossible to analyze your data to understand what is critical for you. They will be very hard to steal, because. it will be impossible to analyze the structure of your corporate web server.
        Moreover, the data will be stored in databases already in encrypted form. Only the fields that are searched can be stored in open form. Even if the copy of the database is stolen (this sometimes happens with backups), it will be impossible to decode it. The RSA encryption protocol used with a 2048-bit key guarantees durability for several years even when using supercomputers.
        And even such a high level of protection can be increased even more. Programmers can make it so that no one can decode the data. Generally they can't.
        
        RSA Protocol
        
        The RSA protocol is interesting in that it uses two keys. One for encryption - not a secret key. And the decryption key is the secret key or private key.
        RSA is a public key cryptographic algorithm based on the computational complexity of the large integer factorization problem.
        The algorithm is used in a wide range of cryptographic applications, including PGP, S/MIME, TLS/SSL, IPSEC/IKE, and others.
        
        RSA and AES
        
        Using two encryption algorithms -
RSA and AES, you can flexibly balance the performance of your software with the highest coding security. Small changes in the software (additional program code) make it possible to make the encrypted data fundamentally undecryptable, even if your secret key becomes known.
        At the same time, there is a technology for protecting the secret key, in which its loss (copy by an attacker) will not lead to the decoding of encrypted data. If special resistance of the software to foreign penetration is required, organizational measures can be used. Such as splitting the decoding key into several parts that an individual employee knows, placing one of the parts of the key in the software and encrypting the key.
        Separately, you can encrypt the scripts of a corporate web server or server software that processes connections from client Android applications. This will make it impossible to analyze the structure of the software and obtain information about the databases.
        
        Simply RSA and AES
        
        If you are developing business software, adding encryption is not difficult at all. To do this, you need to add several classes to the project (open source Java code)
        Here are some usage examples
        
        // ============================================================
        // Generate key pair for 1024-bit RSA encryption and decryption
        // ============================================================
        RSACode rsagente = new RSACode(); // Class instance RSACode
        Key[] KeyPMass = new Key[2]; //An array of two keys to return values from a method
        KeyPMass = rsagente.RSAKeyGen(); //GENERATE Key Pair
        publicKey = KeyPMass[0];
        privateKey = KeyPMass[1];
        // ============================================================
        
        Created keys for encryption and decoding. Encrypt and decrypt text
        
        // ============================================================
        // Encode the original text with RSA private key
        // ============================================================
        RSACode rsacde = new RSACode(); // Class instance RSACode
        encodedBytes = rsacde.RSATextEncode(publicKey, privateKey, testText); //Encode text via RSACode.java class
        // ============================================================
        
        Decode text
        
        // ============================================================
        // Decoding the ciphertext
        // ============================================================
        // Let's call a method from the class RSACode.java
        RSACode rsadecode = new RSACode(); // Class instance RSACode
        decodedBytes = rsadecode.RSATextDecode(KeyMass[0], KeyMass[1], encodedBytes); //Text decoding (publicKey = KeyMass[0], privateKey = KeyMass[1])
        // ============================================================
        
        The set of Java classes used performs many functions - stores the ciphertext, reads the ciphertext, saves, restores, converts, protects keys, etc.
        
        RSA and AES Java classes
        
        For simple work with encryption, a set of Java classes is offered. This is open source Java code that your programmers can see in detail.
        It takes 1 minute to connect the class to the project. After that, all functions can be used.
        
        Freelance
        
        Java encryption classes are designed to make software development easier and to reduce bugs. You get all the information for unlimited use, comments and advice. Java classes are being upgraded. New functions are added, the interface is optimized, methods are added.
        Some methods must be different for each client. This is important to protect keys and critical information from dncoding. Such methods are overwritten after each delivery to the customer. In addition, you receive a manual for self-selection of protection parameters and possible algorithms. No one except you will know how you protected the information.
        
        Know How
        
        This is a significant advantage of Open Sources for Freelancing.
        You use algorithms known to everyone, public Java code, consultations of an unknown specialist and at the same time create software that makes reliable encryption. Because you will know how to do it.
        Nothing more - open source codes for what you need to do.
        
        Android, Apache, Windows
        
        RSA and AES algorithms support popular platforms - Android, Apache, Windows, Linux
        You can use Android smartphones to encrypt data and send via Apache web server with or without decryption to PHP. Further process in Windows or Linux or write to databases in encrypted form.
        Accordingly, using Java classes, you can implement custom messengers with strong encryption. Moreover, you can make instant messengers without using centralized servers.
        
        Custom
        
        Encryption security does not depend on the method (or algorithm) of encryption, but on the secrecy of the keys used for encryption and decryption. One such stable security approach is the RSA algorithm (named after its inventors Ron Rivest, Adi Shamir, and Leonard Adleman). Its advantage lies in the use of asymmetric cryptography to generate a public/private key pair based on the large primes algorithm.
        The public key in RSA is used to encrypt data, which can then only be decrypted with the corresponding private key. Although the two keys are mathematically related, calculating the private key from the public key is extremely difficult and time consuming due to a mathematical problem called simple factorization.
        That's what they say on Wikipedia. But custom programming is good in that you can apply fairly simple solutions that will make the task of cracking hashy encrypted information absolutely unsolvable.
        This does not require more powerful processors. You can publish the converted information on bulletin boards or place it in file hosting, clouds, social networks. Only those to whom you tell how to do it will be able to read it.
        What about a freelancer? Does he know how it's done?
        Everything is reliable. The freelancer explains the algorithm for converting keys or encrypted information. Based on this knowledge, your programmers write a simple code (in 30-60 minutes) that implements the protection option you have chosen.
        Moreover, for what programmers write this code, they may not know - just to convert strings. Without knowledge of this algorithm, it will be impossible to decode information by any computers.
        
RSA and AES
        
         Android Project Freelance >>  
        
        Why Encryption?
        
        The business of even small companies is increasingly using the Internet, web servers, electronic payments and financial documentation. Usually these are typical software packages that have typical vulnerabilities. Even if your system administrator is constantly backing up servers, an attack on your system can lead to data loss in a day or several days. And that can be a lot if you can't get your financial statements right afterwards.
        At the same time, if you implement encryption of critical data, software variables and server scripts, hacking your system can become an extremely difficult and financially unprofitable task. And the data obtained will be unusable by outsiders.
        If your company uses built-in Windows disk encryption (as an example), then this is a typical procedure. The user of such Windows has access to the decrypted data of the entire disk. At the same time, by encrypting the data entered by the client on his smartphone, you receive them to the server in encrypted form, store them in encrypted form and send them to the client in backup, mail, messenger, archive in encrypted form. And decrypt only what you need at a particular moment in time.
        
        It's simple
        
        Java classes are designed so that once you start using them, nothing else needs to be changed in the software.
        
         RSA and AES encryption >>  
        
        PKCS#11
        
        PKCS#11 defines a platform-independent set of functions, structures, constants, and so on. to work with cryptographic devices. These functions can be implemented inside various libraries such as opensc-pkcs11. Libraries can differ not only in their implementation, but also in the very set of functions, types, and constants. This is possible, since the PKCS#11 standard describes various extension methods, which allows you to add your own functions, for example, to work with CMS signature, flash memory, etc.
        
        PHP RSA
        
        If there is a task of decrypting data received from a client smartphone, then this can be done at the Apache PHP level and upload unencrypted data to the database, or encrypt it with a new private key that is unknown to the client.
        At the same time, the Apache and PHP web server is a typical software in which there may be typical vulnerabilities. PHP scripts are located on the server in the form of text files and are protected only by access rights.
        
        Imagine that a hacker has entered your server and sees such a web link
        
        <a href="HA27EX6CD4BB67HFA07E8FFC0D34FBA970E04FD5A7E">script005.php</a>
        
        This is the easiest option. We've just encrypted the link address. But you can hide both the name of the script and part of the PHP code. Moreover, the use of encrypted web links allows you to detect an intrusion into the system.
        This will work even if the web server is hosted on your mobile device.
        
        If information coming from Android devices is decrypted on PHP (for example, in a courier service), then you must have a private key. Passing the key for decoding is not a simple operation. The key must be exported to some format that can be transferred. For example, in text or QR-code. The key must be encrypted with some algorithm. And, ATTENTION, use special actions that will make the private key unhackable. Do you know how to do it?
        After special processing, the private key can be published in a newspaper or on the Internet (although no one ever does). No one can use it except you.
        
        
Private Key Obfuscation
        
        Obfuscation is one of the effective ways to improve the protection of encryption keys and encrypted data. Let's write a free Java class for obfuscation. You can choose the specific methods and parameters from it yourself.
        
         RSA and SQLite >>  
        
        Here is a Java application project for working with a SQLite database. The application creates a database (8 fields of records. One field is encrypted with the RSA algorithm), generates encryption keys, can export and import the database and encryption keys. The application can encrypt large texts.
        This is a great template, the basis for your commercial application. All important technologies have already been created here and excellent comments are used everywhere.
        This application is currently under development. JPG image support will be added.
        This application can be used wherever you need to save important data. RSA encryption is very secure. You can encrypt any number of fields in records - take your pick.
        Then we will add new features to this Android application.



        Android Developer
        
        
  JAVA PROJECT WebCam >>  
        
Complete Android JAVA application project PhotoWebCam - Photo by the Registrar. Compiles, installs and runs on Android 10 and 11. This is done because used smartphones are much cheaper and you don’t mind leaving them as a Web Camera
        
A decent base platform for your own developments. Full functionality. The Apache FTP Client library is already included in the project
        
        
  JAVA PROJECT TrackerGPS >>  
        
Complete Android JAVA application project BGndTGramTracker - A tracker that determines coordinates using GPS or Base Stations and sends them to an SMS or Telegram channel. The project is fully functional, compiled and installed The project can be an attractive basis for your resume, your own developments or for a course project. The ZIP archive contains a description - README.pdf and all the files
        
        
  JAVA PROJECT AudioREG >>  
        
Complete Android JAVA application project AudioREG - actually a voice recorder with an FTP client. Uploads records (your alibi) to your web server. The project is fully compiled and installed An excellent basic project for your own development, for your resume or course project. The Apache FTP Client library is included in the project. ZIP archive contains description - README.pdf
        
        
Photo Registrar >>
        
Languages Flashcards >>
        
Training neural networks >>
        
         Picture Gallery >>  
        
        
Android Developer >>
        
        

        
 

Android Open Source Java Project and Classes. Freelance programming Python Programmer
RSA and AES encryption