{"id":15039255,"url":"https://github.com/leon406/toolsfx","last_synced_at":"2025-05-14T13:05:54.210Z","repository":{"id":37679844,"uuid":"381644086","full_name":"Leon406/ToolsFx","owner":"Leon406","description":"跨平台密码学工具箱。包含编解码，编码转换，加解密， 哈希，MAC，签名，大数运算，压缩，二维码功能，CTF等功能。","archived":false,"fork":false,"pushed_at":"2025-05-13T09:16:06.000Z","size":17918,"stargazers_count":1772,"open_issues_count":6,"forks_count":292,"subscribers_count":27,"default_branch":"dev","last_synced_at":"2025-05-13T09:37:15.931Z","etag":null,"topics":["aes","base64","biginterger","compression","crypto","cryptography","ctf","ctf-tools","hex","md5","rsa","signature"],"latest_commit_sha":null,"homepage":"https://github.com/Leon406/ToolsFx/wiki","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Leon406.png","metadata":{"files":{"readme":"README-plugin-zh.md","changelog":"changelog.md","contributing":null,"funding":".github/FUNDING.yml","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,"zenodo":null},"funding":{"custom":"https://afdian.com/a/leon406"}},"created_at":"2021-06-30T09:19:28.000Z","updated_at":"2025-05-13T09:27:59.000Z","dependencies_parsed_at":"2023-10-01T23:37:13.414Z","dependency_job_id":"2b59bfe4-9ed3-4dcb-a3f0-2547c3c4881d","html_url":"https://github.com/Leon406/ToolsFx","commit_stats":{"total_commits":1376,"total_committers":2,"mean_commits":688.0,"dds":"0.17078488372093026","last_synced_commit":"456e5381ca3a2d62331cb19f3b714a97f6b3d25f"},"previous_names":[],"tags_count":74,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Leon406%2FToolsFx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Leon406%2FToolsFx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Leon406%2FToolsFx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Leon406%2FToolsFx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Leon406","download_url":"https://codeload.github.com/Leon406/ToolsFx/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254149951,"owners_count":22022851,"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","base64","biginterger","compression","crypto","cryptography","ctf","ctf-tools","hex","md5","rsa","signature"],"created_at":"2024-09-24T20:42:06.520Z","updated_at":"2025-05-14T13:05:54.187Z","avatar_url":"https://github.com/Leon406.png","language":"Kotlin","readme":"\u003cp\u003e \u003ch1 align=\"center\"\u003eToolsFx 插件指南\u003c/h1\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\u003ca href=\"README-plugin.md\"\u003eEnglish\u003c/a\u003e|\u003ca href=\"README-plugin-zh.md\"\u003e中文\u003c/a\u003e\n\u003c/p\u003e\n \u003cimg width=0 height=0 src=\"https://profile-counter.glitch.me/Leon406/count.svg\" alt=\"Leon406:: Visitor's Count\" /\u003e\n \u003cimg width=0 height=0 src=\"https://profile-counter.glitch.me/Leon406_ToolsFx/count.svg\" alt=\"ToolsFx:: Visitor's Count\" /\u003e\n\n------\n\n目前同时支持两种机制\n\n## 原理1 classloader\n\n基于classloader 加载对应接口的实现的jar包, 这里同时用到 convention over configuration思想, jar包名称为对应**全类名**\n\n应用启动会扫描**根目录 plugin文件**下的jar包,再通过反射实例化,最后显示\n\n## 原理2 [spi(Service Provider Interface)](https://en.wikipedia.org/wiki/Service_provider_interface)\n\n插件module **resource**目录新建 **META-INF/services** 文件夹, 新建文件名 为**插件接口的全类名**,内容为**接口实现的全类名**\n\n宿主应用通过  ServiceLoader#load 实例化所有插件接口的实现的对象,最后显示\n\n## 对比\n\n| 机制        | 加载时机            | 命名                          |\n| ----------- | ------------------- |-----------------------------|\n| classloader | **按需加载**        | 严格以全类名.jar命名,可以放在指定插件目录     |\n| spi         | 必须同主app一起加载 | **.jar结尾即可, lib目录或者指定默认加载** |\n\n\n\nclassloader目前遇到插件resource资源无法加载的问题,临时只能将plugin的资源放到了宿主\n\n## 开发相关\n\n参考 plugin-sample 或者 plugin-apipost\n\n## 插件\n\n### ApiPost\n\n#### **支持方法**\n\n![sym](/art/plugin/apipost_methods.gif)\n\n#### **数据与请求头**\n\n![sym](/art/plugin/apipost_post.gif)\n\n#### **文件上传**\n\n![sym](/art/plugin/apipost-upload.gif)\n\n\n\n#### 内置变量及函数\n\n使用{{}} 包裹, 同其他api测试工具\n\n##### 变量\n\n- uuid  40位uuid\n\n  ```\n  {{uuid}}\n  ```\n\n- uuid2  32位uuid,删除-\n\n  ```\n  {{uuid2}}\n  ```\n\n- timestamp  时间戳(毫秒)\n\n  ```\n  {{timestamp}}\n  ```\n\n- timestamp2  时间戳 (秒)\n\n  ```\n  {{timestamp2}}\n  ```\n\n##### 函数\n\n目前只支持一个单级别,可以嵌套\n\n- md5\n\n  ```\n  {{md5(ad123124)}}\n  ```\n\n- base64\n\n  ```\n  {{base64(ad123124)}}\n  ```\n\n- digest\n\n  ```\n  {{digest(SHA1,412312)}}\n  ```\n\n- binary\n\n  ```\n  {{binary(ad123124)}}\n  ```\n\n- uppercase\n\n  ```\n  {{uppercase({{digest(SHA1,123)}})}}\n  ```\n\n- lowercase\n\n  ```\n  {{lowercase(asdfAfsdf)}}\n  ```\n\n- datetime2Mills\n\n  ```\n  {{datetime2Mills(2022-01-01 10:00:00)}}\n  ```\n\n- date2Mills\n\n  ```\n  {{date2Mills(2022-01-01)}}\n  ```\n\n\n\n### Location (经纬度转换)\n\n![location](/art/plugin/location.gif)\n\n#### 地图key环境变量 \n\n- 百度 `ToolsFx-Location-KEY-BD`\n- 高德 `ToolsFx-Location-KEY-AMAP`\n- 天地图 `ToolsFx-Location-KEY-TIAN`\n\n### Compression (压缩)\n\n### 图片模块\n\n- png 宽高修复\n- 二进制01转图片\n- 二进制01转二维码\n- rgb色值 转图片\n- base64转图片\n- 图片转base64\n- gif 拆分\n\n插件下载 https://leon.lanzoub.com/b0d9w4cof 提取码：ax63","funding_links":["https://afdian.com/a/leon406"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleon406%2Ftoolsfx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleon406%2Ftoolsfx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleon406%2Ftoolsfx/lists"}