{"id":21373946,"url":"https://github.com/itenfay/dart_crypto","last_synced_at":"2025-07-13T08:31:39.678Z","repository":{"id":113234909,"uuid":"185084832","full_name":"itenfay/dart_crypto","owner":"itenfay","description":"集成了Base64, 32/16 Bits MD5, AES, RSA等算法(This integrates Base64, 32/16 Bits MD5, AES and RSA algorithms.)。","archived":false,"fork":false,"pushed_at":"2024-05-14T12:55:40.000Z","size":251,"stargazers_count":35,"open_issues_count":1,"forks_count":8,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-06-02T10:13:51.358Z","etag":null,"topics":["aes","algorithm","base64","dart","des","flutter","md5","rsa"],"latest_commit_sha":null,"homepage":"https://www.jianshu.com/p/d6db6c6d81d8","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/itenfay.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-05-05T21:37:19.000Z","updated_at":"2024-06-02T10:13:55.308Z","dependencies_parsed_at":null,"dependency_job_id":"f50df8c4-09f1-4f09-9342-e69574cb21dc","html_url":"https://github.com/itenfay/dart_crypto","commit_stats":null,"previous_names":["itenfay/dart_crypto"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itenfay%2Fdart_crypto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itenfay%2Fdart_crypto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itenfay%2Fdart_crypto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itenfay%2Fdart_crypto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/itenfay","download_url":"https://codeload.github.com/itenfay/dart_crypto/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225868146,"owners_count":17536974,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aes","algorithm","base64","dart","des","flutter","md5","rsa"],"created_at":"2024-11-22T08:29:36.346Z","updated_at":"2024-11-22T08:29:57.471Z","avatar_url":"https://github.com/itenfay.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"如果能帮助到你，就请你给一颗[star](https://github.com/chenxing640/dart_crypto)，谢谢！(If this can help you, please give it a [star](https://github.com/chenxing640/dart_crypto), thanks!)\n\n[![License MIT](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](LICENSE)\u0026nbsp;\n[![Support](https://img.shields.io/badge/support-iOS%20|%20Android-blue.svg?style=flat)](https://flutterchina.club)\u0026nbsp;\n\n## dart_crypto\n\n集成了Base64, 32/16 Bits MD5, AES, RSA等算法(This integrates Base64, 32/16 Bits MD5, AES and RSA algorithms.)。\n\n## Group(ID:155353383)\n\n\u003cdiv align=left\u003e\n\u0026emsp; \u003cimg src=\"https://github.com/chenxing640/dart_crypto/raw/master/images/qq155353383.jpg\" width=\"30%\" /\u003e\n\u003c/div\u003e \n\n## Recommendation\n\n* [Grab ethtoken info](https://github.com/chenxing640/grab_ethtoken_info)\n\n## Getting Started\n\nFor help getting started with Flutter, view the online \u003cbr /\u003e\n\n* [Flutter Hub](https://github.com/chenxing640/Awesome/blob/master/Flutter.md)\n\n## Usage\n\n### Plain Text\n\n```dart\nfinal plainText = \"Lorem ipsum dolor sit amet, consectetur adipiscing elit ........。本文基本上是将dart官网部分内容进行翻译，没兴趣的请出门左转至Dart的官网，有兴趣的同志请继续阅读本文。Flutter教程在这里通常，映射是一个有键和值的对象。 键和值都可以是任何类型的对象。 每个键只出现一次，但您可以多次使用相同的值。Dart的Map支持由映射文字和Map。int和double都是num的子类型。 num类型包括基本运算符，如+， - ，/和*，也是你可以找到abs()，ceil()和floor()以及其他方法的地方。 （按位运算符，如\u003e\u003e，在int类中有定义。）如果num及其子类没有您要想要内容，那dart：math库可能有您想要的。Dart字符串是一系列UTF-16代码单元。 您可以使用单引号或双引号来创建字符串：您可以使用{expression}将表达式的值放在字符串中。如果表达式是标识符，则可以跳过{}。 要获取对应于对象的字符串，Dart调用对象的toString()方法。为了表示布尔值，Dart有一个名为bool的类型。 只有两个对象具有bool类型：true和false，它们都是编译时常量。Dart的类型安全意味着您不能使用if（nonbooleanValue）或assert（nonbooleanValue）等代码。 相反，明确检查值，如下所示：也许几乎每种编程语言中最常见的集合是数组或有序的对象组。 在Dart中，数组是List对象，因此大多数人只是将它们称为列表。Dart列表文字看起来像JavaScript数组文字。 这是一个简单的Dart List：\";\n```\n\n### Base64\n\n```dart\ntry {\n    // Base64 - Encode\n    final base64Encoded = crypto.DYFCryptoProvider.yf_base64Encode(plainText);\n    print(\"[Base64] encode: \" + base64Encoded);\n\n    // Base64 - Dncode\n    final base64Decoded = crypto.DYFCryptoProvider.yf_base64Decode(base64Encoded);\n    print(\"[Base64] decode: \" + base64Decoded);\n} catch (e) {\n    print(\"e: $e\");\n}\n```\n\n### MD5\n\n```dart\ntry {\n    // MD5 - 32 Bits Encode\n    final md5Hash = crypto.DYFCryptoProvider.md5Encode(plainText);\n    print(\"[MD5] Hash: \" + md5Hash);\n\n    // MD5 - 16 Bits Encode\n    final md5b16hash = crypto.DYFCryptoProvider.bit16md5Enconde(plainText);\n    print(\"[MD5] 16 Bits Hash: \" + md5b16hash);\n} catch (e) {\n    print(\"e: $e\");\n}\n```\n\n### AES\n\n```dart\ntry {\n    // AES Key\n    // final aesKey = \"smMQI8dMK2nOMUR0TdpBYQUnLpbW8kjHrdy86WtU6eB1Ff6mYveYzezopmbjwBZEjPQmg\";\n    final aesKey = \"smMQI8dMK2\";\n    print(\"[AES] key: \" + aesKey);\n\n    // AES - Encrypt\n    String aesEncryptedText = crypto.DYFCryptoProvider.aesEncrypt(plainText, aesKey);\n    print(\"[AES] encryptedText: \" + aesEncryptedText);\n\n    // AES - Decrypt\n    String aesDecryptedText = crypto.DYFCryptoProvider.aesDecrypt(aesEncryptedText, aesKey);\n    print(\"[AES] decryptedText: \" + aesDecryptedText);\n} catch (e) {\n    print(\"e: $e\");\n}\n```\n\n### RSA\n\n```\n// 公钥\nfinal publicKey =\n\"\"\"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCmPW2SwJFldGVB1SM82VYvSZYR\nF1H5DREUiDK2SLnksxHAV/roC1uB44a4siUehJ9AKeV/g58pVrjhX3eSiBh9Khom\n/S2hEWF2n/6+lqqiwQi1W5rjl86v+dI2F6NgbPFpfesrRjWD9uskT2VX/ZJuMRLz\n8VPIyQOM9TW3PkMYBQIDAQAB\"\"\";\n\n// 私钥 (pkcs8)\nfinal privateKey =\n\"\"\"MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKY9bZLAkWV0ZUHV\nIzzZVi9JlhEXUfkNERSIMrZIueSzEcBX+ugLW4HjhriyJR6En0Ap5X+DnylWuOFf\nd5KIGH0qGib9LaERYXaf/r6WqqLBCLVbmuOXzq/50jYXo2Bs8Wl96ytGNYP26yRP\nZVf9km4xEvPxU8jJA4z1Nbc+QxgFAgMBAAECgYArZVW5PXO3HE9ihBUSyVlqNrdp\n9sB7VyHiTjuOwiVkwiocH9trv6s/mPmONVLjSJOZ2FYEl4Nw8yaIDrfUFJrvhdbh\nHJnwkO27Wo5jEfm2qGCwgQNtUACoIH637LXfP81v5I7eZtEa7kfO8Axpp3czvO1H\ndIAlOI8rU4jb3fB1cQJBANLgfHd/CDro1gtvTrUeTw/lqsKVScGiHn+pmT+THed6\nftJ2MAJVcL/0H8+fFN5mRypCL7LQyPO48dTmfY9PbocCQQDJz8xZGq2BNAd3gSrN\ni3q++SEyjRPzDfr8AGJBJF8qtslcSYrVB/jjPx/qNNlMxOoXnpozBojzVTO3UirM\nJ/wTAkEAzb930YOhPREGHnwImFCtJT6ZYGcWYpXSGg8Y1d2tlLeA28myx+QjMTZ4\nfzOgwemaz9FqBpcNKjctxOLqaRRAKwJAXPZwznbgh8zcx6rjea2PjFscdLnR/7tn\n6x+OIy3K/NUYan+iCUHT33JblDpmAtwObXTs2SZgfZ645PBfsI2WqwJAGJxnG8+w\niCnzN0CIZvG96tfOZmz0lkM4NSHDwdCSbagJlZccOtodpn00Dzy+l0t+oFe0Xm3R\nA0WkPzQX/seO0Q==\"\"\";\n```\n\n```dart\ntry {\n    // RSA - Encrypt\n    String rsaEncryptedText = crypto.DYFCryptoProvider.rsaEncrypt(plainText, publicKey);\n    print(\"[rsa] encryptedText: \" + rsaEncryptedText);\n\n    // RSA - Decrypt\n    String rsaDecryptedText = crypto.DYFCryptoProvider.rsaDecrypt(rsaEncryptedText, privateKey);\n    print(\"[rsa] decryptedText: \" + rsaDecryptedText);\n\n    // RSA - Sign\n    String signature = crypto.DYFCryptoProvider.rsaSign(plainText, privateKey);\n    print(\"[rsa] signature: \" + signature);\n\n    // RSA - Verify\n    bool ret = crypto.DYFCryptoProvider.rsaVerify(signature, plainText, publicKey);\n    print(\"[rsa] signature verification: \" + ret.toString());\n} catch (e) {\n    print(\"e: $e\");\n}\n```\n\n## Feedback is welcome\n\nIf you notice any issue, please create an issue. I will be happy to help you.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitenfay%2Fdart_crypto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fitenfay%2Fdart_crypto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitenfay%2Fdart_crypto/lists"}