Giter VIP home page Giter VIP logo

core-values-encoder's Introduction

core-values-encoder

Translating text to core values and back

core-values-encoder's People

Contributors

sym233 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

core-values-encoder's Issues

为什么hex2duo要用到随机数?

hex2duo似乎不是简单的转化16进制到12进制,在63-69行有用到随机数。

是基于什么的考虑呢?

        // 正常转换, 如 C 10 的意思是, 十六进制的C转化为十二进制的10
        // parseInt('C', 16).toString(12);
        // A A      B B      C 10       D 11        E 12        F 13
        // 您的代码. 如 C 10 2 的意思是, 十六进制的C转化为您的代码中十二进制数组的两个元素 10 和 2
        // 这里枚举了两种随机情况
        // A 10 0   B 10 1   C 10 2     D 10 3      E 10 4      F 10 5
        // A 11 4   B 11 5   C 11 6     D 11 7      E 11 8      F 11 9

python3 实现

import logging
import random
from itertools import islice

logging.basicConfig(level=logging.DEBUG)
VALUES = '富强**文明和谐自由平等公正法治爱国敬业诚信友善'

# str 'Hello:!~World测试'
# hex '48656C6C6F3A217E576F726C64E6B58BE8AF95'
# duo [4, 8, 6, 5, 6, 10, 2, 6, 10, 2, 6, 10, 5, 3, 11, 4, 2, 1, 7, 11, 8, 5, 7, 6, 10, 5, 7, 2, 6, 10, 2, 6, 4, 10, 4, 6, 11, 5, 5, 8, 10, 1, 10, 4, 8, 10, 0, 11, 9, 9, 5]
# val '自由爱国公正平等公正诚信文明公正诚信文明公正诚信平等和谐友善自由文明**法治友善爱国平等法治公正诚信平等法治
# 文明公正诚信文明公正自由诚信自由公正友善平等平等爱国诚信**诚信自由爱国诚信富强友善敬业敬业平等'


def str2utf8(Str):
    utfStr = ''.join([i.encode('utf-8').hex().upper() for i in Str])
    logging.debug('{} --> {}'.format(Str, utfStr))
    return utfStr


def utf82str(utfStr):
    Str = bytearray.fromhex(utfStr).decode('utf-8')
    logging.debug('{} --> {}'.format(utfStr, Str))
    return Str


def hex2duo(hexStr):
    duo = []
    for h in hexStr:
        numH = int(h, 16)
        if numH < 10:
            duo.append(numH)
        elif random.random() < 0.5:
            duo.append(10)
            duo.append(numH - 10)
        else:
            duo.append(11)
            duo.append(numH - 6)
    logging.debug('{} --> {}'.format(hexStr, duo))
    return duo


# def duo2hex(duo):
#     hexList = []
#     i = 0
#     while i < len(duo):
#         d = duo[i]
#         if d < 10:
#             hexList.append('{:X}'.format(d))
#         elif d == 10:
#             i += 1
#             hexList.append('{:X}'.format(duo[i] + 10))
#         else:
#             i += 1
#             hexList.append('{:X}'.format(duo[i] + 6))
#         i += 1
#     return ''.join(hexList)


def duo2hex(duo):
    hexList = []
    if duo[-1] >= 10:
        duo = duo[:-1]
    lit = iter(enumerate(duo))
    for i, d in lit:
        if d < 10:
            hexList.append('{:X}'.format(d))
        elif d == 10:
            hexList.append('{:X}'.format(duo[i + 1] + 10))
            next(islice(lit, 1, 1), None)
        else:
            hexList.append('{:X}'.format(duo[i + 1] + 6))
            next(islice(lit, 1, 1), None)
    hexStr = ''.join(hexList)
    logging.debug('{} --> {}'.format(duo, hexStr))
    return hexStr


def duo2values(duo):
    value = ''.join([VALUES[2 * i] + VALUES[2 * i + 1] for i in duo])
    logging.debug('{} --> {}'.format(duo, value))
    return value


def values2duo(value):
    duo = []
    pureValue = [v for v in value if v in VALUES]
    for i, v in enumerate(pureValue[::2]):
        index = VALUES.index(v)
        if index % 2 == 0:
            duo.append(index // 2)
    logging.debug('{} --> {}'.format(value, duo))
    return duo


def valueEncode(s):
    return duo2values(hex2duo(str2utf8(s)))


def valueDecode(value):
    return utf82str(duo2hex(values2duo(value)))


valueEncode('Hello:!~World测试')
try:
    valueDecode(valueEncode('Hello:!~World测试')[:11])
except:
    logging.exception('decode failed')


valueDecode('诚信自由爱国爱国文明爱国诚信平等诚信自由平等诚信****爱国自由')

Support for emoji

str2utf8() does not work on strings that contain emoji (or any others
beyond the Basic Multilingual Plane).

By a quick search, TextEncoder and TextDecoder may be a good alternative,
but they seems not be supported by browser well. 🤔

再别康桥

诚信自由平等爱国公正爱国友善法治友善爱国平等爱国爱国诚信富强友善平等友善爱国平等诚信**诚信富强友善平等法治诚信自由公正诚信富强**友善自由平等文明富强诚信自由平等友善平等友善爱国敬业富强诚信自由平等诚信**诚信平等敬业法治友善爱国公正敬业**友善自由敬业富强友善自由诚信自由爱国诚信**友善法治诚信**友善平等诚信自由爱国友善平等诚信和谐诚信**诚信**友善爱国法治敬业诚信富强爱国自由诚信自由公正爱国爱国敬业**友善爱国爱国友善平等平等诚信**富强诚信自由自由诚信**友善自由爱国公正友善爱国诚信平等诚信**诚信文明爱国诚信文明富强诚信富强诚信自由公正友善自由诚信和谐诚信富强和谐诚信自由平等诚信富强公正爱国文明友善爱国公正爱国爱国敬业**诚信自由爱国友善平等友善法治诚信**友善平等友善爱国爱国友善平等诚信和谐友善平等诚信**友善爱国法治敬业友善自由爱国自由友善爱国公正敬业友善法治诚信富强平等友善爱国友善敬业友善平等诚信文明敬业诚信**富强友善自由友善爱国公正爱国爱国敬业**诚信自由爱国友善平等诚信和谐友善平等友善平等诚信自由爱国诚信**友善法治诚信**友善平等诚信自由法治敬业诚信富强爱国自由友善爱国公正爱国诚信**敬业诚信**诚信自由公正爱国敬业爱国友善平等友善爱国友善敬业友善平等友善公正爱国友善公正富强诚信富强友善爱国自由友善平等友善法治敬业友善公正友善爱国平等爱国爱国友善自由诚信**友善爱国爱国诚信富强平等友善平等诚信平等友善爱国平等友善自由自由诚信富强敬业友善爱国法治敬业诚信富强爱国自由诚信自由自由诚信**友善自由敬业**诚信自由平等友善平等友善法治友善自由敬业诚信自由和谐爱国富强爱国文明富强诚信富强诚信自由敬业爱国文明友善自由和谐诚信自由公正友善平等文明诚信**和谐诚信自由法治敬业平等敬业自由诚信自由法治敬业友善自由爱国自由诚信自由敬业爱国法治敬业**诚信自由公正敬业诚信平等诚信**和谐友善爱国诚信平等友善平等诚信文明爱国友善公正富强诚信富强友善爱国公正敬业爱国友善自由友善敬业诚信自由平等友善自由自由敬业平等友善爱国敬业敬业爱国友善平等和谐友善爱国自由友善平等爱国诚信富强友善法治诚信自由法治敬业友善自由爱国自由诚信自由公正敬业公正诚信**富强诚信自由平等友善自由爱国敬业爱国友善爱国友善敬业诚信**友善公正敬业友善平等富强友善自由友善爱国公正友善平等和谐友善自由文明诚信自由平等爱国平等爱国敬业诚信自由敬业爱国法治爱国诚信文明诚信自由法治敬业友善自由爱国自由诚信自由爱国爱国敬业友善平等和谐友善爱国平等诚信**友善法治诚信****友善爱国诚信平等诚信**诚信文明爱国诚信文明富强诚信富强友善爱国平等敬业友善公正友善自由爱国诚信自由公正爱国爱国敬业**诚信自由法治敬业诚信富强爱国自由诚信自由平等友善平等诚信平等爱国和谐诚信自由平等友善自由自由诚信**自由诚信自由爱国爱国友善法治友善自由**诚信自由公正友善平等友善公正友善平等诚信自由友善爱国和谐爱国富强爱国文明富强友善自由友善爱国爱国友善平等友善法治诚信富强友善敬业友善爱国公正友善平等和谐诚信富强平等友善爱国自由友善平等爱国爱国诚信富强友善爱国法治敬业诚信富强爱国自由友善爱国敬业敬业诚信和谐敬业文明友善爱国爱国爱国友善法治爱国法治友善爱国友善敬业诚信**诚信文明爱国诚信文明富强诚信富强友善爱国公正诚信**文明诚信**敬业友善爱国公正诚信**文明诚信**敬业诚信自由法治敬业诚信富强爱国自由诚信自由平等敬业友善公正友善自由爱国友善爱国公正诚信**富强友善平等自由友善爱国平等友善平等诚信富强敬业平等诚信自由公正爱国友善平等敬业友善平等诚信自由公正敬业**爱国法治友善爱国友善敬业友善平等友善公正敬业友善平等富强友善自由诚信自由平等敬业友善公正诚信富强爱国友善爱国平等友善平等诚信富强友善平等法治诚信自由公正友善平等文明诚信**和谐诚信自由法治敬业友善自由爱国自由友善爱国公正敬业诚信平等敬业自由友善爱国公正友善平等和谐友善自由文明友善爱国敬业爱国法治爱国友善公正诚信自由友善敬业友善平等友善公正爱国诚信文明富强诚信富强诚信自由公正爱国爱国敬业**诚信自由法治敬业自由敬业爱国诚信自由平等诚信**友善敬业爱国和谐友善爱国平等爱国**敬业友善自由诚信自由自由友善平等爱国爱国富强友善爱国公正敬业诚信和谐诚信富强**诚信自由公正诚信**富强友善平等自由诚信自由爱国爱国友善法治爱国敬业友善爱国诚信平等友善平等友善公正爱国**富强诚信富强友善爱国敬业爱国文明诚信富强和谐诚信自由公正友善自由公正爱国公正诚信自由爱国爱国友善法治诚信富强诚信**诚信自由自由友善平等爱国爱国诚信**友善爱国法治敬业友善自由爱国自由友善爱国自由诚信**爱国爱国富强诚信自由公正友善平等友善法治诚信富强友善法治诚信自由诚信平等诚信**诚信文明爱国友善公正富强友善自由友善爱国自由诚信**爱国爱国诚信和谐诚信自由公正敬业爱国友善自由诚信平等友善爱国公正诚信**爱国爱国平等友善爱国公正诚信**和谐爱国敬业诚信自由诚信平等友善平等友善公正爱国友善公正富强诚信富强友善爱国公正敬业爱国友善自由友善敬业诚信自由平等友善自由自由友善自由敬业友善爱国自由友善平等爱国爱国诚信富强诚信自由爱国敬业敬业友善平等敬业诚信自由诚信平等友善平等诚信文明敬业诚信**富强诚信富强友善爱国公正爱国诚信平等爱国敬业友善爱国法治诚信富强文明爱国诚信自由诚信自由平等敬业友善公正友善自由爱国友善爱国公正诚信**平等友善自由诚信自由诚信自由爱国敬业法治友善平等友善平等友善爱国敬业敬业法治友善平等自由友善爱国诚信平等友善平等诚信文明爱国友善公正富强友善自由诚信自由公正友善平等文明爱国敬业诚信自由公正友善平等法治爱国富强诚信自由法治敬业友善法治爱国富强友善爱国平等诚信**诚信和谐诚信富强敬业友善爱国爱国敬业敬业友善平等敬业诚信自由自由友善平等诚信文明友善平等诚信文明友善爱国法治敬业友善自由爱国自由友善爱国公正诚信富强文明诚信富强公正诚信自由和谐爱国富强爱国文明富强友善自由诚信自由平等诚信富强友善敬业诚信**友善平等诚信自由公正诚信富强文明友善自由公正诚信自由友善敬业诚信**诚信文明敬业诚信平等富强友善自由诚信自由公正敬业文明敬业**友善爱国自由友善平等爱国爱国富强友善爱国公正敬业自由友善自由友善敬业诚信自由敬业敬业平等诚信**诚信平等诚信自由法治诚信富强诚信平等敬业敬业友善爱国友善敬业友善平等友善公正爱国友善公正富强友善自由友善爱国平等敬业富强敬业**诚信自由敬业敬业友善法治敬业文明友善爱国爱国爱国友善法治爱国敬业诚信自由公正敬业友善平等诚信**自由友善爱国敬业敬业诚信和谐敬业文明诚信自由平等诚信富强自由爱国自由友善爱国公正友善平等友善公正友善自由友善平等友善爱国公正诚信**友善自由诚信富强友善敬业友善爱国诚信平等诚信**诚信文明敬业友善平等富强诚信富强友善爱国公正诚信**友善平等诚信富强**友善爱国爱国友善平等诚信和谐诚信**友善法治友善爱国自由诚信**爱国爱国富强友善爱国爱国爱国爱国诚信**敬业友善爱国公正敬业爱国敬业友善敬业友善爱国爱国诚信**友善爱国爱国敬业友善爱国诚信平等友善平等诚信文明爱国友善公正富强友善自由友善爱国平等敬业友善公正友善自由爱国友善爱国公正敬业爱国敬业友善敬业诚信自由爱国友善平等友善爱国爱国敬业诚信自由公正敬业公正敬业**友善爱国公正敬业公正敬业和谐诚信自由敬业爱国法治爱国友善公正友善爱国公正敬业自由友善平等诚信自由诚信自由公正诚信富强友善法治爱国诚信文明友善爱国和谐爱国富强爱国文明富强诚信富强诚信自由自由友善平等友善法治爱国公正友善爱国公正爱国爱国敬业**诚信自由自由诚信**爱国爱国友善法治诚信自由爱国爱国和谐友善平等友善法治诚信自由公正敬业自由诚信**友善爱国诚信自由公正友善自由诚信和谐爱国友善公正诚信自由诚信平等友善平等诚信文明爱国友善公正富强诚信富强友善爱国公正爱国文明爱国自由诚信自由公正爱国文明爱国自由友善爱国公正敬业爱国诚信富强友善敬业友善爱国平等爱国爱国诚信富强友善平等诚信自由法治友善自由公正友善平等诚信**友善爱国法治敬业诚信富强爱国自由友善爱国法治友善自由友善公正敬业敬业友善爱国法治友善自由友善爱国友善自由友善平等诚信自由诚信平等友善平等友善公正敬业友善平等富强诚信富强友善爱国平等友善自由自由爱国友善敬业诚信自由爱国敬业敬业诚信富强诚信**友善爱国自由诚信**敬业敬业诚信平等诚信自由自由友善平等爱国友善平等诚信富强诚信自由公正爱国爱国敬业**友善爱国公正友善平等文明爱国敬业诚信自由敬业友善平等友善平等敬业爱国友善爱国诚信平等诚信**友善公正爱国友善公正富强诚信富强诚信自由公正友善平等文明爱国敬业友善爱国敬业友善平等诚信**敬业爱国友善爱国公正敬业爱国诚信富强友善敬业诚信自由自由友善平等诚信**爱国友善自由诚信自由公正敬业敬业敬业友善自由诚信自由法治敬业友善自由爱国自由诚信自由平等友善平等友善自由诚信**法治友善爱国公正友善自由**诚信富强平等诚信自由诚信平等诚信**诚信文明爱国**富强诚信富强友善爱国公正爱国文明爱国自由诚信自由公正爱国文明爱国自由诚信自由法治敬业诚信富强爱国自由诚信自由公正爱国爱国敬业**友善爱国爱国诚信**平等友善平等富强友善爱国自由诚信**友善自由爱国公正友善爱国诚信平等诚信**诚信文明爱国友善公正富强友善自由友善爱国公正诚信富强诚信和谐友善自由和谐友善爱国平等诚信富强公正爱国文明友善爱国公正爱国爱国敬业**诚信自由公正爱国文明爱国自由友善爱国公正爱国文明爱国自由友善爱国法治敬业友善自由爱国自由友善爱国公正敬业诚信和谐友善自由平等友善爱国友善敬业诚信**友善公正敬业诚信**富强友善自由友善爱国公正爱国爱国敬业**诚信自由公正爱国友善公正诚信富强平等诚信自由自由诚信**爱国爱国富强友善爱国公正爱国诚信文明诚信富强平等诚信自由爱国诚信富强**诚信富强和谐友善爱国爱国诚信富强文明敬业公正友善爱国诚信平等友善平等诚信文明爱国诚信文明富强友善自由诚信自由自由友善平等爱国爱国诚信和谐诚信自由平等诚信**爱国友善自由公正友善爱国爱国诚信**平等友善平等富强友善爱国自由友善平等爱国爱国富强诚信自由法治爱国敬业爱国法治诚信自由自由友善平等友善自由敬业**友善爱国平等友善平等诚信和谐诚信富强敬业诚信自由和谐爱国富强爱国文明

new features

感谢大佬,下面是一些建议,不过不太容易在现有基础上去改了,可以新开个项目。

  1. 删去“自由”和“**”
  2. 新增密码
  3. 新增压缩的逻辑
  4. 补充关键词到16个,可以提高运行速度和降低长度。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.