标签: unicode-normalization

散列时哪些Unicode规范化(和其他处理)适用于密码?

如果我接受完整的Unicode密码,我应该如何在将字符串传递给哈希函数之前对其进行规范化?

目标

如果没有规范化,如果有人ma\u00F1ana在一台计算机上将其密码设置为"mañana"()并尝试使用ma\u006E\u0303ana另一台计算机上的"mañana"()登录,则哈希将不同,登录将失败.这受用户代理或其操作系统的控制.

  • 我想确保那些哈希到同一个东西.
  • 我并不关心Α,А和A(希腊语,西里尔语,拉丁语)等同性字.

参考

Unicode规范化形式:http://unicode.org/reports/tr15/#Norm_Forms

注意事项

  • 任何标准化过程都可能导致冲突,例如"o?ce" == "office".
  • 规范化可以改变字符串中的字节数.

进一步的问题

  • 如果服务器收到的字节序列不是UTF-8(或其他格式),会发生什么?拒绝,因为它不能正常化?
  • 如果服务器收到其Unicode版本中未分配的字符会发生什么?

passwords unicode password-storage unicode-normalization homoglyph

16
推荐指数
1
解决办法
1323
查看次数

JavaScript Unicode规范化

我的印象是JavaScript解释器假定它正在解释的源代码已经被规范化了.什么,正常化?它不能是文本编辑器,否则源的明文表示会改变.是否有一些"预处理器"可以进行规范化?

javascript unicode normalization unicode-normalization

15
推荐指数
3
解决办法
1万
查看次数

C/C++中的Unicode字符串规范化

我想知道如何在C/C++中规范化字符串(包含utf-8/utf-16).在.NET中有一个函数String.Normalize.

我过去使用过UTF8-CPP,但它没有提供这样的功能. ICU和Qt提供字符串规范化,但我更喜欢轻量级解决方案.

对此有任何"轻量级"解决方案吗?

c++ unicode utf-8 utf-16 unicode-normalization

14
推荐指数
1
解决办法
9030
查看次数

文本运行不在Unicode规范化表单C中

当我试图验证我的网站(http://dvartora.com/DvarTora/)时,我收到以下错误:

文本运行不在Unicode规范化表单C中

A:这是什么意思?

B:我可以用记事本++修复它吗?

C:如果B不是,我如何使用免费工具(不是Dreamweaver)解决这个问题?

unicode validation html5 notepad++ unicode-normalization

14
推荐指数
2
解决办法
2万
查看次数

在PySpark中使用Apache Spark数据帧删除重音的最佳方法是什么?

我需要删除西班牙语中的重音和来自不同数据集的其他语言的重音.

我已经在这篇文章提供的代码中做了一个函数,删除了特殊的重音符号.问题是函数很慢,因为它使用了UDF.我只是想知道我是否可以提高函数的性能以在更短的时间内获得结果,因为这对小型数据帧有好处,但对大型数据帧则不行.

提前致谢.

在这里代码,您将能够按照它呈现的方式运行它:

# Importing sql types
from pyspark.sql.types import StringType, IntegerType, StructType, StructField
from pyspark.sql.functions import udf, col
import unicodedata

# Building a simple dataframe:
schema = StructType([StructField("city", StringType(), True),
                     StructField("country", StringType(), True),
                     StructField("population", IntegerType(), True)])

countries = ['Venezuela', 'US@A', 'Brazil', 'Spain']
cities = ['Maracaibó', 'New York', '   São Paulo   ', '~Madrid']
population = [37800000,19795791,12341418,6489162]

# Dataframe:
df = sqlContext.createDataFrame(list(zip(cities, countries, population)), schema=schema)

df.show()

class Test():
    def __init__(self, df):
        self.df = df

    def clearAccents(self, …
Run Code Online (Sandbox Code Playgroud)

python unicode-normalization apache-spark apache-spark-sql pyspark

14
推荐指数
2
解决办法
3643
查看次数

R中的Unicode规范化(表单C):将带有重音符号的所有字符转换为它们的单一字符形式?

在Unicode中,带有重音的字母可以用两种方式表示:强调字母本身,以及裸字母加上重音的组合.例如,é(+ U00E9)和e'(+ U0065 + U0301)通常以相同的方式显示.

R呈现以下内容(版本3.0.2,Mac OS 10.7.5):

> "\u00e9"
[1] "é"
> "\u0065\u0301"
[1] "é"
Run Code Online (Sandbox Code Playgroud)

但是,当然:

> "\u00e9" == "\u0065\u0301"
[1] FALSE
Run Code Online (Sandbox Code Playgroud)

R中是否有一个将两个unicode字符转换成单字符形式的函数?在这里特别地,它会坍塌"\u0065\u0301""\u00e9".

这对处理大量字符串非常方便.另外,单字符表单可以很容易地转换为其他编码iconv- 至少对于通常的Latin1字符 - 并且更好地处理plot.

非常感谢提前.

unicode encoding r latin unicode-normalization

13
推荐指数
1
解决办法
1704
查看次数

哪个是更好的Unicode规范化表单?

我在Dreamweaver上有四个选项:C,D,KC,KD.我应该选择哪一个?为什么?

forms dreamweaver normalization unicode-normalization

12
推荐指数
1
解决办法
4022
查看次数

比较unicode字符时,Javascript字符串比较失败

我想在JavaScript中比较两个相同的字符串,但是相等运算符==返回false.一个字符串包含一个特殊字符(例如丹麦语å).

JavaScript代码:

var filenameFromJS = "Designhåndbog.pdf";
var filenameFromServer = "Designhåndbog.pdf";

print(filenameFromJS == filenameFromServer); // This prints false why?
Run Code Online (Sandbox Code Playgroud)

解决方案 对我来说有用的是unicode规范化,正如slevithan指出的那样.

我分叉了我原来的jsfiddle使用slevithan建议的规范化lib来制作一个版本.链接:http://jsfiddle.net/GWZ8j/1/.

javascript string unicode data-transfer unicode-normalization

12
推荐指数
2
解决办法
1万
查看次数

在使用Unicode提交表单时如何避免浏览器Unicode规范化

在HTML中呈现以下Unicode文本时,事实证明,当将数据发布回服务器时,浏览器(Google Chrome)会执行某种形式的Unicode规范化.(可能是表格C).

但是用希伯来文圣经(בְּרִיךְהוּא)文本时,这可以很容易地将文本,因为它在概述这里(第10页).

有没有办法避免浏览器自动文本规范化?

我写了一篇博文,更详细地描述了我所面临的问题:http: //blog.hibernatingrhinos.com/12449/would-it-be-possible-to-have-a-web-browser-based-编辑换了,希伯来文

forms unicode normalization unicode-normalization

11
推荐指数
1
解决办法
2732
查看次数

如何规范化字符串?

在.NET中,你可以标准化(NFC,NFD,NFKC,NFKD)字符串,String.Normalize()并且有一个 Text.NormalizationForm枚举.

在.NET for Windows Store应用程序中,两者都不可用.我查看了StringSystem.TextSystem.Globalization名称空间,但没有发现任何内容.

我错过了什么吗?如何规范化Windows应用商店应用中的字符串?

有没有人知道为什么这个Normalize方法不适用于Store Apps?

.net string unicode unicode-normalization windows-store-apps

10
推荐指数
1
解决办法
1818
查看次数