abumq / mine Goto Github PK
View Code? Open in Web Editor NEWMinimal and single-header cryptography library (AES, RSA, Base16, Base64, ZLib), implemented for education purposes - use @abumq/ripe for production.
License: Other
Minimal and single-header cryptography library (AES, RSA, Base16, Base64, ZLib), implemented for education purposes - use @abumq/ripe for production.
License: Other
AES encryption is broken in some cases
INPUT:
{"status":0,"ack":1,"flags":2001,"max_bulk_size":50,"server_info":{"version":"2.1.1-dev-debug"},"key":"141E4B143B314C71203E43481F1566504B3F52665847141F02104335650C5315","client_id":"muflihun00102030","logging_port":8778,"age":240,"date_created":1520477743}
KEY: 141E4B143B314C71203E43481F1566504B3F52665847141F02104335650C5315
IV: 3E552F2851473510663466583C084D29
## mine
echo '{"status":0,"ack":1,"flags":2001,"max_bulk_size":50,"server_info":{"version":"2.1.1-dev-debug"},"key":"141E4B143B314C71203E43481F1566504B3F52665847141F02104335650C5315","client_id":"muflihun00102030","logging_port":8778,"age":240,"date_created":1520477743}' | mine -e --aes --key 141E4B143B314C71203E43481F1566504B3F52665847141F02104335650C5315 --iv 3E552F2851473510663466583C084D29 --base64
## ripe
echo '{"status":0,"ack":1,"flags":2001,"max_bulk_size":50,"server_info":{"version":"2.1.1-dev-debug"},"key":"141E4B143B314C71203E43481F1566504B3F52665847141F02104335650C5315","client_id":"muflihun00102030","logging_port":8778,"age":240,"date_created":1520477743}' | ripe -e --aes --key 141E4B143B314C71203E43481F1566504B3F52665847141F02104335650C5315 --iv 3E552F2851473510663466583C084D29 --base64
xhlE7aSsuVtzKBSNQU8eI0A81/HQ2O60YxYRXNjERTNCymJLkAbBYPlfO/wJKWfxbSPFMt0bt0mhyKoHzDsnOOdNkY1iUX99D17LM4pSzpC5iRsxoHPyx6Bp5huZtJ9dZRLom22017fFlmuW8LGVhWt5NsfR/2bwcZOICRnKMXEg06YVsvSOBMKhBtoqpzw+IWgzJxN7GZzZifsIGWvb9OMLiTufG+dMl+92mdf3EG1t7z+SWErcAX4PaNNYSl8cZDg13d2hyoeW2NGis2ga/XL+c2qIWBNbTkZqJFtThrT/Fz20FLnhJjVbmMhCcXo/lsEcF74OWtkfAvxyKGoHuQ==
or
C61944EDA4ACB95B7328148D414F1E23403CD7F1D0D8EEB46316115CD8C4453342CA624B9006C160F95F3BFC092967F16D23C532DD1BB749A1C8AA07CC3B2738E74D918D62517F7D0F5ECB338A52CE90B9891B31A073F2C7A069E61B99B49F5D6512E89B6DB4D7B7C5966B96F0B195856B7936C7D1FF66F07193880919CA317120D3A615B2F48E04C2A106DA2AA73C3E21683327137B199CD989FB08196BDBF4E30B893B9F1BE74C97EF7699D7F7106D6DEF3F92584ADC017E0F68D3584A5F1C643835DDDDA1CA8796D8D1A2B3681AFD72FE736A8858135B4E466A245B5386B4FF173DB414B9E126355B98C842717A3F96C11C17BE0E5AD91F02FC72286A07B9
xhlE7aSsuVtzKBSNQU8eI0A81/HQ2O60YxYRXNjERTNCymJLkAbBYPlfO/wJKWfxbSPFMt0bt0mhyKoHzDsnOOdNkY1iUX99D17LM4pSzpC5iRsxoHPyx6Bp5huZtJ9dZRLom22017fFlmuW8LGVhWt5NsfR/2bwcZOICRnKMXEg06YVsvSOBMKhBtoqpzw+IWgzJxN7GZzZifsIGWvb9OMLiTufG+dMl+92mdf3EG1t7z+SWErcAX4PaNNYSl8cZDg13d2hyoeW2NGis2ga/XL+c2qIWBNbTkZqJFtThrT/Fz20FLnhJjVbmMhCcXo/lsEcF74OWtkfAvxyKGoHuTFFrw5fRgqIGkLqgTEgmBU=
or
C61944EDA4ACB95B7328148D414F1E23403CD7F1D0D8EEB46316115CD8C4453342CA624B9006C160F95F3BFC092967F16D23C532DD1BB749A1C8AA07CC3B2738E74D918D62517F7D0F5ECB338A52CE90B9891B31A073F2C7A069E61B99B49F5D6512E89B6DB4D7B7C5966B96F0B195856B7936C7D1FF66F07193880919CA317120D3A615B2F48E04C2A106DA2AA73C3E21683327137B199CD989FB08196BDBF4E30B893B9F1BE74C97EF7699D7F7106D6DEF3F92584ADC017E0F68D3584A5F1C643835DDDDA1CA8796D8D1A2B3681AFD72FE736A8858135B4E466A245B5386B4FF173DB414B9E126355B98C842717A3F96C11C17BE0E5AD91F02FC72286A07B93145AF0E5F460A881A42EA8131209815
Difference is last few bits TFFrw5fRgqIGkLqgTEgmBU=
Expression: cannot seek string iterator after end
The program is normal under the clang compiler, but on vc2019, Microsoft will report an error on the judgment condition of your "for" statement. If the judgment of the maximum pointer of the iterator exceeds the error, the debug channel will report an error, and the output of the Release channel will be abnormal.
Assuming the string length is "length", then it is normal when you execute begin+length<end
, but after each round of the loop, the pointer is shifted back by 3 bits, then begin+length+1<end
and begin+length+2<end
two judgment statements will report an error.
I have a solution:
Change
for (auto it = begin; it < end; it += 3) {
to
auto length = end - begin;
for (auto i = 0; i < length; i += 3) {
auto it = begin + i;
Change
if (it + 1 < end) {
if (it + 2 < end) {
to
if (i + 1 < length) {
if (i + 2 < length) {
Personally think this is the easiest solution.
Especially interested in RSA.
Sadly there is not even an example.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.