zero_size_encryption 0.0.1 copy "zero_size_encryption: ^0.0.1" to clipboard
zero_size_encryption: ^0.0.1 copied to clipboard

A new sharara package that encrypt data with zero size cost which means if size of data is 1KB after encrypting it still 1 kB which is very useful when encrypting data in ranges inside http requests a [...]

Zero Size Encryption #

encrypting package for providing zero size encryption which encrypt any type of data bytes into encrypted data with zero length effected also with special key

Features #

  • encrypting data so fast
  • easy and fast to use
  • full support of encrypting and decrypting
  • Easy to Use.
  • light and support all platforms [Windows,IOS,Android,Linux,Web]

Installation #

Add the following dependencies in your pubspec.yaml file of your flutter project.

    zero_size_encryption: <latest_version>

or you can use terminal command

   flutter pub add zero_size_encryption

How to use #

Create a ZeroSizeEncryptorDecryptor with default data bytes , note to encrypt real data bytes and not the one wrapped by language object



import 'package:flutter/material.dart';
import 'package:zero_size_encryption/zero_size_encryption.dart';


void main(){
  runApp(const App());
}



class App extends StatelessWidget {
  const App({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      title: "test",
      home: FirstScreen(),
    );
  }
}

class FirstScreen extends StatefulWidget {
  const FirstScreen({super.key});

  @override
  State<FirstScreen> createState() => _FirstScreenState();
}

class _FirstScreenState extends State<FirstScreen> {

  final TextEditingController dataController = TextEditingController();
  final TextEditingController keyController = TextEditingController()
    ..text = "HassanSharara";
  static const String _chars = "abcdefghijklmnopqrstuvwxyz1234567890";


  String encrypted = "";
  String decrypted = "";


  @override
  void initState() {
    dataController.text = _chars;
    super.initState();
  }



  _generateRandomText(){

    final List<String> n = _chars.
    split("")
        .toList()
      ..shuffle();
    dataController.text = n.join();
  }



  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar:AppBar(
        title:const Text("zero size encryption"),
      ),

      body:ListView(
        padding:const EdgeInsets.all(12),
        children: [

          const  Padding(
            padding:  EdgeInsets.all(8.0),
            child: Text("DATA : ",
              style:TextStyle(fontWeight:FontWeight.bold,
                  color:Colors.red
              ),
            ),
          ),
          TextFormField(
            controller:dataController,
          ),
          const SizedBox(height:10,),

          ElevatedButton(onPressed: _generateRandomText, child: const Text("generate random data text")),
          const SizedBox(height:20,),
          const  Padding(
            padding:  EdgeInsets.all(8.0),
            child: Text("key : ",
              style:TextStyle(fontWeight:FontWeight.bold,
                  color:Colors.red
              ),
            ),
          ),
          TextFormField(
            controller:keyController,
          ),
          const SizedBox(height:20,),

          Text("encrypted : $encrypted"),
          const SizedBox(height:20,),
          Text("decrypted : $decrypted"),
          const SizedBox(height:80,),

          ElevatedButton(onPressed: (){
            final ZeroSizeEncryptorDecryptor
            encryptor = ZeroSizeEncryptorDecryptor.fromString(dataController.text,
                key:keyController.text
            );
            setState(() {
              encrypted = String.fromCharCodes(encryptor.encrypt(
              ));
            });

          }, child: Text("encrypt")),

          const SizedBox(height:20,),
          ElevatedButton(onPressed: (){
            final ZeroSizeEncryptorDecryptor
            decryptor = ZeroSizeEncryptorDecryptor.fromString(encrypted,
                key:keyController.text
            );
            setState(() {
              decrypted = String.fromCharCodes(decryptor.decrypt());
            });
            print(decrypted == dataController.text);
          }, child: Text("decrypt")),

        ],
      ),
    );
  }
}





0
likes
140
points
7
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A new sharara package that encrypt data with zero size cost which means if size of data is 1KB after encrypting it still 1 kB which is very useful when encrypting data in ranges inside http requests and content size based applications

Homepage
Repository (GitHub)

License

MIT (license)

Dependencies

flutter

More

Packages that depend on zero_size_encryption