From 508ddaf0d17ba8acf3d0f6efea1dcbb594b6b611 Mon Sep 17 00:00:00 2001 From: Kirill Efimov Date: Wed, 5 Jul 2017 16:39:54 +0300 Subject: [PATCH] added diagram to README.md --- README.md | 4 +++- cmake-build-debug/CMakeFiles/clion-log.txt | 1 - images/flow.png | Bin 0 -> 18854 bytes 3 files changed, 3 insertions(+), 2 deletions(-) delete mode 100644 cmake-build-debug/CMakeFiles/clion-log.txt create mode 100644 images/flow.png diff --git a/README.md b/README.md index c371605..dc6f564 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ # URL Protector -This module allow [nginx](https://www.nginx.com/) to decrypt strings encrypted with [xxtea](https://en.wikipedia.org/wiki/XXTEA) algorithm. +This module allow [nginx](https://www.nginx.com/) to decrypt strings encrypted with [xxtea](https://en.wikipedia.org/wiki/XXTEA) algorithm. This is useful to hide actual URLs from client. + +![](images/flow.png) ## Installation diff --git a/cmake-build-debug/CMakeFiles/clion-log.txt b/cmake-build-debug/CMakeFiles/clion-log.txt deleted file mode 100644 index b13c96a..0000000 --- a/cmake-build-debug/CMakeFiles/clion-log.txt +++ /dev/null @@ -1 +0,0 @@ -CMakeLists.txt not found in /home/Kirill/Work/url-protector-nginx-module diff --git a/images/flow.png b/images/flow.png new file mode 100644 index 0000000000000000000000000000000000000000..5dfe9e1d49ae1436a525b803098adf4ca6e61c20 GIT binary patch literal 18854 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